/* drama.css —— 剧场：颜色全部来自手机主题变量（--theme-color / --card-bg / --bg-color …），换主题会跟着变；版式另有 8 套 */
.drama-icon{background:linear-gradient(145deg,#a9bcf0,#6f7fd0)}
#desktop.ic-sweet .drama-icon{--c1:#d4defa;--c2:#93a4e6}
#dramaApp{--drm-serif:"Songti SC","STSong","Noto Serif SC","SimSun",serif;display:flex;flex-direction:column;background:var(--bg-color);overflow:hidden}
#dramaApp.hidden{display:none}
#dramaApp.playing{padding-top:0}
#dramaApp.playing>:not(#drmPlay):not(.drm-mask){display:none!important}
#dramaApp button{font-family:inherit}
.drm-h{display:none!important}
.drm-gap{height:90px}

/* ---------- 标签 / 主体 / 底栏 ---------- */
.drm-tabs{flex:none;display:flex;gap:4px;padding:8px 14px 0}
.drm-tabs button{position:relative;flex:1;border:none;background:none;color:var(--text-sub);font-size:14px;padding:8px 0 9px;cursor:pointer}
.drm-tabs button.on{color:var(--theme-dark);font-weight:700}
.drm-tabs button.on::after{content:"";position:absolute;left:30%;right:30%;bottom:2px;height:3px;border-radius:2px;background:var(--theme-color)}
.drm-tabs i{font-style:normal;font-size:10px;margin-left:4px;color:var(--text-sub)}
.drm-body{flex:1;min-height:0;padding:6px 14px 18px!important}
.drm-bar{flex:none;display:flex;align-items:center;gap:8px;padding:10px 14px calc(12px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--card-bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:.5px solid var(--border-color)}
.drm-bar.hidden{display:none}
.drm-bar span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;color:var(--text-sub)}
.drm-bar .pri{border:none;border-radius:999px;background:var(--theme-color);color:var(--on-accent);font-size:15px;font-weight:600;padding:10px 30px;cursor:pointer}
.drm-bar .pri:active{transform:scale(.96)}
.drm-mini{border:.5px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer;flex:none}
.drm-mini.dan{color:#d9534f}

/* ---------- 开场页 ---------- */
.drm-hero{display:flex;align-items:center;gap:12px;margin:6px 0 10px;padding:14px;border-radius:20px;color:#fff;background:linear-gradient(150deg,var(--p1),var(--p2) 55%,var(--p3));position:relative;overflow:hidden;box-shadow:0 8px 22px -14px rgba(0,0,0,.5)}
.drm-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(0,0,0,.28))}
.drm-hero>*{position:relative;z-index:1}
.drm-hero .seal{flex:none;width:46px;height:46px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.9);border-radius:9px;font:600 25px/1 var(--drm-serif);transform:rotate(-6deg);background:rgba(255,255,255,.14)}
.drm-hero b{display:block;font-size:16px;font-family:var(--drm-serif);letter-spacing:.06em;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.drm-hero small{display:block;font-size:12px;opacity:.92;margin-top:3px;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.drm-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0}
.drm-row.top{padding:4px 2px 0}
.drm-row b{display:block;font-size:14px;font-weight:600;color:var(--theme-dark)}
.drm-row small{display:block;font-size:11.5px;color:var(--text-sub);margin-top:2px;line-height:1.4}
.drm-row.rg{flex-wrap:wrap}.drm-row.rg>div{display:flex;justify-content:space-between;width:100%}.drm-row.rg em{font-style:normal;font-size:12px;color:var(--text-sub)}
.drm-row input[type=range]{width:100%;accent-color:var(--theme-color)}
.drm-sec{background:var(--card-bg);border:.5px solid var(--border-color);border-radius:18px;margin:10px 0;overflow:hidden}
.drm-sec>summary{list-style:none;display:flex;align-items:baseline;gap:10px;padding:14px 16px;cursor:pointer}
.drm-sec>summary::-webkit-details-marker{display:none}
.drm-sec>summary b{font-size:15px;color:var(--theme-dark)}
.drm-sec>summary small{flex:1;min-width:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:var(--text-sub)}
.drm-sec>summary::after{content:"";flex:none;width:7px;height:7px;border-right:1.6px solid var(--text-sub);border-bottom:1.6px solid var(--text-sub);transform:rotate(45deg) translateY(-2px);transition:transform .2s;align-self:center}
.drm-sec[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.drm-sin{padding:0 16px 16px}
.drm-gt{font-size:12px;color:var(--text-sub);margin:12px 2px 2px}
.drm-desc{font-size:12.5px;line-height:1.7;color:var(--text-sub);margin:8px 2px}
.drm-mem{display:grid;gap:8px;margin:2px 0 6px}
.drm-mem button{text-align:left;border:1px solid var(--border-color);background:var(--bg-color);color:var(--theme-dark);border-radius:14px;padding:11px 13px;cursor:pointer}
.drm-mem button b{display:block;font-size:14px}.drm-mem button small{display:block;margin-top:3px;font-size:12px;line-height:1.5;color:var(--text-sub)}
.drm-mem button.on{border-color:var(--theme-color);background:color-mix(in srgb,var(--theme-color) 12%,var(--card-bg))}
.drm-ai{width:100%;border:1px dashed var(--theme-color);background:color-mix(in srgb,var(--theme-color) 8%,transparent);color:var(--accent-text);border-radius:14px;padding:11px 0;font-size:14px;margin-bottom:10px;cursor:pointer}
.drm-sg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.drm-sc{position:relative;height:76px;border:none;border-radius:14px;overflow:hidden;padding:0;background:linear-gradient(150deg,var(--p1),var(--p2) 58%,var(--p3));color:#fff;cursor:pointer;box-shadow:0 3px 10px -6px rgba(0,0,0,.45)}
.drm-sc::after{content:"";position:absolute;inset:auto 0 0;height:58%;background:linear-gradient(transparent,rgba(0,0,0,.4))}
.drm-sc .seal{position:absolute;z-index:1;right:8px;top:7px;width:29px;height:29px;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.88);border-radius:6px;font:600 16px/1 var(--drm-serif);font-style:normal;transform:rotate(-7deg);background:rgba(255,255,255,.13)}
.drm-sc span{position:absolute;z-index:1;left:9px;bottom:7px;right:6px;text-align:left;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drm-sc.on{outline:2.5px solid var(--theme-color);outline-offset:2px}
.drm-sc.add{background:var(--bg-color);color:var(--text-sub);border:1px dashed var(--border-color);box-shadow:none}
.drm-sc.add::after{display:none}.drm-sc.add .seal{border-color:var(--text-sub);background:none}
.drm-sc.prev{width:46%;margin:0 auto 10px;cursor:default}
.drm-f{display:block;margin:12px 0 0}
.drm-f>span{display:block;font-size:12px;color:var(--text-sub);margin:0 2px 5px}
.drm-f input,.drm-f textarea,.drm-ta,.drm-search input{width:100%;box-sizing:border-box;border:.5px solid var(--border-color);background:var(--bg-color);color:var(--text-main);border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;line-height:1.6;outline:none;resize:vertical}
.drm-search{padding:6px 0 10px}.drm-search input{border-radius:999px;padding:9px 16px}
.drm-seg{display:flex;padding:3px;border-radius:12px;background:color-mix(in srgb,var(--text-sub) 16%,transparent);margin:6px 0}
.drm-seg button{flex:1;border:none;background:none;color:var(--text-sub);border-radius:9px;padding:7px 0;font-size:13px;cursor:pointer}
.drm-seg button.on{background:var(--card-bg);color:var(--theme-dark);font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.drm-lv{display:flex;align-items:center;gap:10px;margin-top:8px}.drm-lv>span{flex:none;width:72px;font-size:13px;color:var(--theme-dark)}.drm-lv .drm-seg{flex:1;margin:0}
.drm-sw{flex:none;position:relative;width:46px;height:28px;border:none;border-radius:14px;background:color-mix(in srgb,var(--text-sub) 35%,transparent);cursor:pointer;transition:background .2s}
.drm-sw i{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.3);transition:transform .2s}
.drm-sw.on{background:var(--theme-color)}.drm-sw.on i{transform:translateX(18px)}
.drm-step{flex:none;display:flex;align-items:center;gap:2px;border:.5px solid var(--border-color);border-radius:999px;background:var(--bg-color)}
.drm-step button{border:none;background:none;width:34px;height:30px;font-size:17px;color:var(--theme-dark);cursor:pointer}
.drm-step em{font-style:normal;font-size:13px;min-width:44px;text-align:center;color:var(--text-main)}
.drm-colr{display:flex;align-items:center;gap:8px}.drm-colr input{width:34px;height:30px;border:none;border-radius:8px;padding:0;background:none}
.drm-cols{display:flex;gap:10px;margin:6px 0}.drm-cols input{flex:1;height:38px;border:none;border-radius:10px;padding:0;background:none}
.xa-chips button small{opacity:.7;font-size:11px}
.xa-chips button.add{border-style:dashed;color:var(--text-sub)}

/* ---------- 历史 / 摘录 / 素材 ---------- */
.drm-hr{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:.5px solid var(--border-color);cursor:pointer}
.drm-hr .seal{flex:none;width:46px;height:46px;display:grid;place-items:center;border-radius:13px;color:#fff;font:600 20px/1 var(--drm-serif);font-style:normal;background:linear-gradient(150deg,var(--p1),var(--p2) 58%,var(--p3));box-shadow:0 3px 8px -4px rgba(0,0,0,.4)}
.drm-hr .l{flex:1;min-width:0}.drm-hr .l b{display:block;font-size:15px;color:var(--theme-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drm-hr .l b em{font-style:normal;font-size:10px;background:var(--accent-soft);color:var(--theme-dark);border-radius:6px;padding:1px 5px;margin-right:6px;font-weight:600}
.drm-hr .l span{display:block;font-size:12.5px;color:var(--text-sub);margin-top:2px}.drm-hr .l small{display:block;font-size:11px;color:var(--text-sub);opacity:.8;margin-top:1px}
.drm-q{background:var(--card-bg);border:.5px solid var(--border-color);border-radius:16px;padding:14px 16px;margin:10px 0;border-left:3px solid var(--theme-color)}
.drm-q p{margin:0 0 10px;font-family:var(--drm-serif);font-size:15px;line-height:1.9;color:var(--text-main)}
.drm-q>div{display:flex;align-items:center;gap:8px}.drm-q>div span{flex:1;font-size:11.5px;color:var(--text-sub)}
.drm-q .dq{background:linear-gradient(transparent 62%,color-mix(in srgb,var(--theme-color) 28%,transparent) 62%)}
.drm-ch{border-top:.5px solid var(--border-color);padding:10px 2px}.drm-ch b{font-size:14px;color:var(--theme-dark)}.drm-ch p{margin:4px 0 0;font-size:13px;line-height:1.7;color:var(--text-sub)}

/* ---------- 抽屉 ---------- */
.drm-mask{position:absolute;inset:0;z-index:40;background:rgba(20,16,22,.45);display:flex;align-items:flex-end;animation:drmFadeIn .18s ease}
.drm-mask.out{opacity:0;transition:opacity .16s}
@keyframes drmFadeIn{from{opacity:0}to{opacity:1}}
.drm-sheet{width:100%;max-height:88%;display:flex;flex-direction:column;background:var(--bg-color);color:var(--text-main);border-radius:22px 22px 0 0;padding:8px 16px 0;box-sizing:border-box;animation:drmUp .24s cubic-bezier(.2,.8,.2,1)}
@keyframes drmUp{from{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}
.drm-grab{flex:none;width:38px;height:5px;border-radius:3px;background:rgba(120,120,128,.35);margin:2px auto 8px}
.drm-sheet h3{flex:none;margin:0 0 6px;font-size:16px;text-align:center;font-weight:600;color:var(--theme-dark)}
.drm-sb{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.drm-pick button{display:block;width:100%;text-align:left;padding:13px 4px;border:none;border-bottom:.5px solid var(--border-color);background:none;color:var(--text-main);cursor:pointer}
.drm-pick button:last-child{border-bottom:none}
.drm-pick b{display:block;font-size:15px;font-weight:600}.drm-pick small{display:block;margin-top:3px;font-size:12px;line-height:1.5;color:var(--text-sub)}
.drm-pick button.dan b{color:#d9534f}

/* ---------- 演出页 ---------- */
.drm-play{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.drm-fx{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.drm-fx i{position:absolute;left:var(--x);top:-6%;display:block}
.drm-fx[data-fx=rain] i{width:1px;height:calc(15px*var(--s));background:linear-gradient(transparent,rgba(255,255,255,.75));animation:drmFall var(--d) linear infinite;animation-delay:var(--dl)}
.drm-fx[data-fx=snow] i{width:calc(5px*var(--s));height:calc(5px*var(--s));border-radius:50%;background:#fff;opacity:.85;animation:drmSnow var(--d) linear infinite;animation-delay:var(--dl)}
.drm-fx[data-fx=petal] i{width:calc(10px*var(--s));height:calc(7px*var(--s));border-radius:100% 0 100% 0;background:rgba(255,170,195,.85);animation:drmPetal var(--d) linear infinite;animation-delay:var(--dl)}
.drm-fx[data-fx=leaf] i{width:calc(9px*var(--s));height:calc(6px*var(--s));border-radius:80% 0 80% 0;background:rgba(214,160,88,.85);animation:drmPetal var(--d) linear infinite;animation-delay:var(--dl)}
.drm-fx[data-fx=star] i{top:var(--y);width:calc(2.5px*var(--s));height:calc(2.5px*var(--s));border-radius:50%;background:#fff;animation:drmTw 3.2s ease-in-out infinite alternate;animation-delay:var(--dl)}
.drm-fx[data-fx=firefly] i{top:var(--y);width:calc(5px*var(--s));height:calc(5px*var(--s));border-radius:50%;background:#ffe58a;box-shadow:0 0 9px 3px rgba(255,229,138,.7);animation:drmFly var(--d) ease-in-out infinite alternate;animation-delay:var(--dl)}
.drm-fx[data-fx=bubble] i{top:auto;bottom:-6%;width:calc(9px*var(--s));height:calc(9px*var(--s));border-radius:50%;border:1px solid rgba(255,255,255,.85);animation:drmRise var(--d) linear infinite;animation-delay:var(--dl)}
.drm-fx[data-fx=dust] i{top:var(--y);width:calc(3px*var(--s));height:calc(3px*var(--s));border-radius:50%;background:rgba(255,255,255,.8);filter:blur(.6px);animation:drmFly var(--d) ease-in-out infinite alternate;animation-delay:var(--dl)}
@keyframes drmFall{from{transform:translateY(-10vh);opacity:0}10%{opacity:.8}to{transform:translateY(115vh);opacity:.2}}
@keyframes drmSnow{from{transform:translate(0,-8vh)}50%{transform:translate(18px,50vh)}to{transform:translate(-10px,112vh)}}
@keyframes drmPetal{from{transform:translate(0,-8vh) rotate(0)}to{transform:translate(-40px,112vh) rotate(540deg)}}
@keyframes drmTw{from{opacity:.15}to{opacity:.95}}
@keyframes drmFly{from{transform:translate(0,0)}to{transform:translate(26px,-34px)}}
@keyframes drmRise{from{transform:translateY(0);opacity:.9}to{transform:translateY(-112vh);opacity:0}}
@media (prefers-reduced-motion:reduce){.drm-fx i{animation:none!important;opacity:.4}.drm-read .drm-tx p{animation:none!important}}
.drm-top{position:relative;z-index:3;flex:none;display:flex;align-items:center;gap:8px;padding:var(--drm-st,48px) 12px 8px;color:var(--text-main)}
.drm-top button{flex:none;border:.5px solid var(--border-color);background:color-mix(in srgb,var(--card-bg) 74%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--theme-dark);border-radius:999px;min-width:34px;height:34px;padding:0 13px;font-size:14px;cursor:pointer}
#drmPb{font-size:22px;line-height:1;padding:0 0 3px}
.drm-tt{flex:1;min-width:0;text-align:center}
.drm-tt b{display:block;font:600 15px/1.3 var(--ff,var(--drm-serif));letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 8px color-mix(in srgb,var(--bg-color) 70%,transparent)}
.drm-tt small{display:block;font-size:11px;color:color-mix(in srgb,var(--text-main) 62%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drm-stat{position:relative;z-index:3;flex:none;display:flex;gap:6px;overflow-x:auto;padding:0 12px 6px;scrollbar-width:none}
.drm-stat::-webkit-scrollbar{display:none}
.drm-stat span{flex:none;font-size:11.5px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--card-bg) 74%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:.5px solid var(--border-color);color:var(--text-main)}
.drm-stat b{font-weight:500;color:var(--text-sub);margin-right:5px}
.drm-scroll{position:relative;z-index:2;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 10px 16px}
.drm-dock{position:relative;z-index:3;flex:none;padding:6px 10px calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,color-mix(in srgb,var(--bg-color) 78%,transparent) 26%)}
.drm-opts,.drm-quick{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:none}
.drm-opts::-webkit-scrollbar,.drm-quick::-webkit-scrollbar{display:none}
.drm-opts button,.drm-quick button{flex:none;max-width:78vw;border:1px solid color-mix(in srgb,var(--theme-color) 60%,transparent);background:color-mix(in srgb,var(--card-bg) 86%,transparent);color:var(--theme-dark);border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drm-opts button.retry{border-style:dashed}.drm-quick span{font-size:12px;color:var(--text-sub);padding:6px}
.drm-in textarea{display:block;width:100%;box-sizing:border-box;resize:none;max-height:150px;border:.5px solid var(--border-color);border-radius:18px;padding:10px 15px;background:color-mix(in srgb,var(--card-bg) 94%,transparent);color:var(--text-main);font-family:var(--ff,inherit);font-size:15px;line-height:1.55;outline:none}
.drm-in textarea:focus{border-color:var(--theme-color)}
.drm-btns{display:flex;align-items:center;gap:6px;margin-top:7px}.drm-btns i{flex:1}
.drm-btns button{border:.5px solid var(--border-color);background:color-mix(in srgb,var(--card-bg) 88%,transparent);color:var(--theme-dark);border-radius:999px;padding:7px 12px;font-size:13px;cursor:pointer}
.drm-btns button.pri{background:var(--theme-color);color:var(--on-accent);border-color:transparent;font-weight:600;padding:7px 22px}
.drm-btns button:disabled{opacity:.45}

/* ---------- 阅读版面（公共） ---------- */
.drm-read{--k:var(--ink,var(--s-ink));--d:var(--dq,var(--s-dq));--h:var(--act,var(--s-th));--pp:var(--paper,var(--s-paper));
  position:relative;box-sizing:border-box;max-width:640px;margin:8px auto 4px;padding:16px 18px 20px;border-radius:18px;background:var(--pp);color:var(--k);
  font-family:var(--ff,inherit);font-size:var(--fs,16px);line-height:var(--lh,1.95);text-align:left;box-shadow:0 10px 28px -16px rgba(0,0,0,.45)}
[data-align="justify"] .drm-tx{text-align:justify}
.drm-t{position:relative;margin:0 0 20px;cursor:pointer;-webkit-user-select:text;user-select:text}
.drm-t:last-child{margin-bottom:0}
.drm-t header{display:flex;align-items:center;gap:8px;font-size:.7em;letter-spacing:.22em;color:var(--s-sub);margin:0 0 6px}
.drm-t header::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--s-rule),transparent)}
.drm-tx p{margin:0 0 .75em}.drm-tx p:last-child{margin-bottom:0}
[data-indent="1"] .drm-t.ai .drm-tx p{text-indent:2em}
[data-drop="1"] .drm-t.ai .drm-tx p:first-child::first-letter{float:left;font-size:2.7em;line-height:.88;padding:.07em .1em 0 0;font-weight:700;color:var(--s-ac)}
.drm-t.ai.fresh .drm-tx p{animation:drmIn .8s ease both;animation-delay:calc(var(--i)*.32s)}
[data-fade="0"] .drm-t.ai.fresh .drm-tx p{animation:none}
@keyframes drmIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.dq{color:var(--d);font-weight:500;background:linear-gradient(transparent 64%,color-mix(in srgb,var(--s-ac) 26%,transparent) 64%)}
.th{color:var(--h);opacity:.86}
em.ac{font-style:normal;color:var(--h)}
.drm-t.me{margin-left:14%}
.drm-t.me header{justify-content:flex-end}.drm-t.me header::after{display:none}
.drm-t.me header::before{content:"";flex:1;height:1px;background:linear-gradient(270deg,var(--s-rule),transparent)}
.drm-t.me .drm-tx{padding:2px 0 2px 12px;border-left:2px solid var(--s-ac);opacity:.93}
.drm-brk{display:flex;align-items:center;gap:12px;margin:6px 0 22px;color:var(--s-sub);font-size:.78em;letter-spacing:.2em}
.drm-brk span{flex:none;max-width:70%;text-align:center}
.drm-brk .orn{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--s-rule),transparent);position:relative}
.drm-brk.ch{flex-direction:column;gap:6px;margin:14px 0 24px;font-size:1em;color:var(--s-ac);font-family:var(--drm-serif);letter-spacing:.3em}
.drm-brk.ch .orn{width:60%;flex:none}
.drm-empty{text-align:center;padding:30px 10px 20px}
.drm-empty .seal{display:inline-grid;place-items:center;width:62px;height:62px;border:2px solid var(--s-ac);border-radius:12px;color:var(--s-ac);font:600 34px/1 var(--drm-serif);font-style:normal;transform:rotate(-6deg)}
.drm-empty b{display:block;margin-top:12px;font:600 1.1em var(--drm-serif);letter-spacing:.2em}
.drm-empty p{margin:8px 0 6px;font-size:.88em;color:var(--s-sub);line-height:1.8}.drm-empty small{font-size:.76em;color:var(--s-sub)}
.drm-busy{display:flex;align-items:center;gap:10px;padding:8px 0 2px;color:var(--s-sub);font-size:.82em}
.drm-busy span{display:flex;gap:4px}.drm-busy span i{width:6px;height:6px;border-radius:50%;background:var(--s-ac);animation:drmDot 1s infinite ease-in-out}
.drm-busy span i:nth-child(2){animation-delay:.15s}.drm-busy span i:nth-child(3){animation-delay:.3s}
.drm-busy em{font-style:normal;flex:1}.drm-busy button{border:none;background:none;color:var(--s-sub);text-decoration:underline;font-size:1em;cursor:pointer}
@keyframes drmDot{0%,80%,100%{transform:scale(.55);opacity:.4}40%{transform:scale(1);opacity:1}}

/* ---------- 版式：每套只定义自己的纸张、墨色和装饰 ---------- */
[data-skin="follow"]{--s-paper:color-mix(in srgb,var(--card-bg,#fff) 90%,transparent);--s-ink:var(--text-main,#333);--s-sub:var(--text-sub,#999);--s-rule:var(--border-color,#ddd);--s-ac:var(--theme-color,#e58fb9);--s-dq:var(--theme-dark,#333);--s-th:var(--text-sub,#999)}

[data-skin="book"]{--s-paper:color-mix(in srgb,#f3e9d4 90%,var(--theme-color,#c58) 10%);--s-ink:#3b3027;--s-sub:#8c7a66;--s-rule:#cdb792;--s-ac:#9a4a3b;--s-dq:#5b2e23;--s-th:#8c7a66}
[data-skin="book"] .drm-read{border-radius:5px 16px 16px 5px;border-left:4px double #c9b28a;box-shadow:inset 10px 0 16px -12px rgba(90,60,20,.4),0 12px 26px -14px rgba(0,0,0,.5)}
[data-skin="book"] .drm-t header{justify-content:center;letter-spacing:.35em}
[data-skin="book"] .drm-t header::before{content:"";flex:1;height:1px;background:linear-gradient(270deg,var(--s-rule),transparent)}
[data-skin="book"] .dq{background:none;border-bottom:1px solid color-mix(in srgb,var(--s-ac) 55%,transparent)}

[data-skin="letter"]{--s-paper:#fffdf5;--s-ink:#33384a;--s-sub:#8a90a6;--s-rule:#c9d3ea;--s-ac:#c85a5a;--s-dq:#2a3a78;--s-th:#8a90a6}
[data-skin="letter"] .drm-read{padding:16px 16px 22px 46px;border-radius:4px;box-shadow:0 10px 24px -14px rgba(0,0,0,.5)}
[data-skin="letter"] .drm-read::before{content:"";position:absolute;left:34px;top:0;bottom:0;width:1px;background:rgba(214,100,100,.5)}
[data-skin="letter"] .drm-tx{background-image:repeating-linear-gradient(transparent 0,transparent calc(var(--fs,16px)*var(--lh,1.95) - 1px),rgba(120,150,210,.32) calc(var(--fs,16px)*var(--lh,1.95) - 1px),rgba(120,150,210,.32) calc(var(--fs,16px)*var(--lh,1.95)))}
[data-skin="letter"] .drm-tx p{margin:0}
[data-skin="letter"] .drm-t header::after{background:none}
[data-skin="letter"] .dq{background:none;text-decoration:underline wavy color-mix(in srgb,var(--s-dq) 40%,transparent);text-underline-offset:4px}

[data-skin="diary"]{--s-paper:#fffaf1;--s-ink:#4a3f45;--s-sub:#a2939a;--s-rule:#eadfd2;--s-ac:#e58fa9;--s-dq:#b54f72;--s-th:#a2939a}
[data-skin="diary"] .drm-read{background:radial-gradient(rgba(120,90,80,.16) 1px,transparent 1.3px) 0 0/16px 16px,var(--pp);border-radius:14px}
[data-skin="diary"] .drm-t header{display:inline-flex;padding:1px 14px;margin-bottom:8px;transform:rotate(-1.6deg);border-radius:2px;color:#5c4650;letter-spacing:.2em;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--s-ac) 38%,#fff) 0 6px,color-mix(in srgb,var(--s-ac) 20%,#fff) 6px 12px)}
[data-skin="diary"] .drm-t header::after,[data-skin="diary"] .drm-t.me header::before{display:none}
[data-skin="diary"] .drm-t.me{transform:rotate(.5deg)}
[data-skin="diary"] .drm-t.me .drm-tx{background:#fff3b8;border:none;padding:8px 12px;border-radius:3px;box-shadow:0 3px 8px -4px rgba(0,0,0,.3);color:#5a4a2a}

[data-skin="ink"]{--s-paper:#f3f0e8;--s-ink:#202020;--s-sub:#85807a;--s-rule:#c9c3b8;--s-ac:#b6382c;--s-dq:#8f2a20;--s-th:#85807a}
[data-skin="ink"] .drm-read{border-radius:3px;background-image:radial-gradient(ellipse at 20% 0,rgba(0,0,0,.05),transparent 55%),radial-gradient(ellipse at 90% 100%,rgba(0,0,0,.06),transparent 50%)}
[data-skin="ink"] .drm-t.ai header::before{content:attr(data-seal);display:inline-grid;place-items:center;width:1.9em;height:1.9em;border-radius:3px;background:var(--s-ac);color:#f6eee4;font-size:1.05em;letter-spacing:0;transform:rotate(-4deg);font-family:var(--drm-serif)}
[data-skin="ink"] .drm-t.ai .drm-tx{padding-left:13px;border-left:1px solid rgba(0,0,0,.4)}
[data-skin="ink"] .dq{background:none;border-bottom:1px solid var(--s-ac)}

[data-skin="film"]{--s-paper:transparent;--s-ink:#f0ebe2;--s-sub:#9d978c;--s-rule:rgba(255,255,255,.2);--s-ac:#e8b95a;--s-dq:#ffe29c;--s-th:#aaa49a}
[data-skin="film"][data-bgm="scene"] .drm-bg{background:radial-gradient(ellipse at 50% 28%,color-mix(in srgb,var(--p3,#444) 42%,#000),#050506 72%)!important}
[data-skin="film"][data-bgm="scene"] .drm-bg::after{display:none}
[data-skin="film"] .drm-read{box-shadow:none;text-align:center;padding:10px 6px}
[data-skin="film"] .drm-top,[data-skin="film"] .drm-tt small,[data-skin="film"] .drm-tt b{color:#eee;text-shadow:none}
[data-skin="film"] .drm-t.ai header{display:none}
[data-skin="film"] .drm-t.ai .drm-tx{text-shadow:0 1px 8px rgba(0,0,0,.8)}
[data-skin="film"] .drm-t.ai .drm-tx p{text-indent:0!important}
[data-skin="film"] .drm-t.me{margin-left:0}[data-skin="film"] .drm-t.me .drm-tx{border:none;padding:0;font-style:italic;color:#bdb7ab}
[data-skin="film"] .drm-t.me header{justify-content:center}[data-skin="film"] .drm-t.me header::before,[data-skin="film"] .drm-t.me header::after{display:none}
[data-skin="film"] .dq{background:none;color:var(--s-dq)}
[data-skin="film"] .drm-brk{letter-spacing:.5em;color:#cfc8ba}

[data-skin="night"]{--s-paper:rgba(14,18,44,.58);--s-ink:#e5e8ff;--s-sub:#8f97c4;--s-rule:rgba(160,170,255,.28);--s-ac:#ffd98a;--s-dq:#ffe7a8;--s-th:#9aa3d8}
[data-skin="night"][data-bgm="scene"] .drm-bg{background:linear-gradient(175deg,#0a0e2c,#1a2152 58%,color-mix(in srgb,var(--p3,#3a4f8a) 70%,#1a2152))!important}
[data-skin="night"][data-bgm="scene"] .drm-bg::after{display:none}
[data-skin="night"] .drm-read{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:.5px solid rgba(160,170,255,.28)}
[data-skin="night"] .drm-top,[data-skin="night"] .drm-tt small,[data-skin="night"] .drm-tt b{color:#e5e8ff;text-shadow:none}
[data-skin="night"] .drm-tx{text-shadow:0 0 10px rgba(150,165,255,.35)}
[data-skin="night"] .dq{background:none;text-shadow:0 0 10px rgba(255,217,138,.5)}

[data-skin="glass"]{--s-paper:rgba(255,255,255,.56);--s-ink:#26262c;--s-sub:#6e6e7a;--s-rule:rgba(255,255,255,.7);--s-ac:var(--p3,#8a7be0);--s-dq:#1c1c24;--s-th:#6e6e7a}
[data-skin="glass"] .drm-read{backdrop-filter:blur(16px) saturate(1.35);-webkit-backdrop-filter:blur(16px) saturate(1.35);border:1px solid rgba(255,255,255,.7);box-shadow:0 14px 34px -18px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.8)}
[data-skin="glass"][data-bgm="scene"] .drm-bg::after{display:none}

/* ================= v2：韩系低饱和 · 对话框 · 背景 · 装饰 ================= */
/* —— 背景层 —— */
.drm-bg{position:absolute;inset:0;overflow:hidden}
[data-bgm="none"] .drm-bg{background:var(--bg-color)}
[data-bgm="solid"] .drm-bg{background:var(--bgc,#ebe8e4)}
[data-bgm="grad"] .drm-bg{background:linear-gradient(calc(var(--bga,160)*1deg),var(--bgc,#ebe8e4),var(--bgc2,#dcd8d3))}
[data-bgm="scene"] .drm-bg{background:linear-gradient(170deg,var(--p1,#e6e1da),var(--p2,#cfc7bd) 55%,var(--p3,#a89f95));filter:saturate(var(--sat,.5))}
[data-bgm="scene"] .drm-bg::after{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--bg-color) 40%,transparent)}
[data-bgm="image"] .drm-bg{background:var(--bgc,#ebe8e4)}
[data-bgm="image"] .drm-bg::before{content:"";position:absolute;inset:-26px;background:var(--bgimg) center/cover no-repeat;filter:blur(var(--blur,0px))}
[data-bgm="image"] .drm-bg::after{content:"";position:absolute;inset:0;background:rgba(var(--dimc,0,0,0),var(--dim,0))}
.drm-dock{background:none}
[data-lum="d"] .drm-top,[data-lum="d"] .drm-tt b{color:#f0ece7;text-shadow:none}
[data-lum="d"] .drm-tt small{color:rgba(240,236,231,.62)}
[data-lum="d"] .drm-stat span{color:#e9e5e0;border-color:rgba(255,255,255,.26)}
[data-lum="d"] .drm-stat b{color:rgba(233,229,224,.6)}
[data-lum="d"] .drm-opts button,[data-lum="d"] .drm-quick button,[data-lum="d"] .drm-btns button{background:rgba(255,255,255,.08);color:#e9e5e0;border-color:rgba(255,255,255,.24)}
[data-lum="d"] .drm-btns button.pri{background:#e9e5e0;color:#2a292d;border-color:transparent}
[data-lum="d"] .drm-in textarea{background:rgba(255,255,255,.08);color:#f0ece7;border-color:rgba(255,255,255,.22)}
[data-lum="d"] .drm-in textarea::placeholder{color:rgba(240,236,231,.5)}
[data-lum="l"] .drm-fx[data-fx=rain] i{background:linear-gradient(transparent,rgba(120,112,105,.55))}
[data-lum="l"] .drm-fx[data-fx=snow] i{background:rgba(160,152,146,.55)}
[data-lum="l"] .drm-fx[data-fx=star] i,[data-lum="l"] .drm-fx[data-fx=dust] i{background:rgba(130,120,112,.5)}
[data-lum="l"] .drm-fx[data-fx=bubble] i{border-color:rgba(130,120,112,.5)}

/* —— 极简外壳：把开场页 / 历史页压成低饱和 —— */
#dramaApp{--sat:.5}
.drm-sc,.drm-hr .seal,.drm-hero .seal{filter:saturate(var(--sat,.5))}
.drm-sc{border-radius:12px;box-shadow:none}
.drm-sc .seal{transform:none;border-radius:8px;width:26px;height:26px;font-size:14px;right:8px;top:8px}
.drm-sc.on{outline:1.5px solid var(--text-main);outline-offset:2px}
#dramaApp[data-card="flat"] .drm-sc{background:var(--p2)}
#dramaApp[data-card="flat"] .drm-sc::after{display:none}
#dramaApp[data-card="flat"] .drm-sc span{text-shadow:0 1px 3px rgba(0,0,0,.25)}
#dramaApp[data-card="line"] .drm-sc{background:transparent;color:var(--text-main);border:.5px solid var(--border-color);filter:none}
#dramaApp[data-card="line"] .drm-sc::after{display:none}
#dramaApp[data-card="line"] .drm-sc span{text-shadow:none}
#dramaApp[data-card="line"] .drm-sc .seal{border-color:var(--p3);color:var(--p3);background:none;filter:saturate(var(--sat,.5))}
.drm-hero{background:none!important;color:var(--text-main);border:.5px solid var(--border-color);box-shadow:none;border-radius:14px;padding:12px 14px}
.drm-hero::after{display:none}
.drm-hero .seal{width:38px;height:38px;font-size:20px;transform:none;border-radius:10px;border:none;background:linear-gradient(150deg,var(--p2),var(--p3))}
.drm-hero b{text-shadow:none;font-size:15px;letter-spacing:.04em}.drm-hero small{text-shadow:none;color:var(--text-sub);opacity:1}
.drm-sec{border-radius:14px}
.drm-top button{background:color-mix(in srgb,var(--card-bg) 70%,transparent);backdrop-filter:none;-webkit-backdrop-filter:none}
.drm-stat span{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:.5px solid color-mix(in srgb,currentColor 22%,transparent);color:var(--text-main)}
.drm-opts button,.drm-quick button{border:.5px solid var(--border-color);background:color-mix(in srgb,var(--card-bg) 78%,transparent);color:var(--text-main)}
.drm-in textarea{border-radius:14px}

/* —— 韩系素净版式 —— */
[data-skin="mist"]{--s-paper:#faf9f7;--s-ink:#4b4745;--s-sub:#a39d98;--s-rule:#d9d4cf;--s-ac:#b3a69c;--s-dq:#2c2928;--s-th:#a39d98}
[data-skin="mist"] .drm-read{--s-rule:color-mix(in srgb,var(--k) 16%,transparent);--s-sub:color-mix(in srgb,var(--k) 52%,transparent);--tagc:var(--pp);background:none;box-shadow:none;padding:12px 2px 20px}
[data-skin="mist"] .dq{background:none;font-weight:500}
[data-skin="mist"] .drm-t header::before{content:none}

/* —— 阅读细节：字间距 / 段距 / 宽度 —— */
.drm-read{max-width:var(--pw,100%);--fbg:color-mix(in srgb,var(--pp) var(--fop,55%),transparent)}
.drm-tx{letter-spacing:var(--ls,0)}
.drm-tx p{margin:0 0 var(--ps,.75em)}.drm-tx p:last-child{margin-bottom:0}

/* —— 对话框样式（data-frame）—— */
[data-frame="line"] .drm-read,[data-frame="soft"] .drm-read,[data-frame="plain"] .drm-read{background:none!important;box-shadow:none!important;border:none!important;border-radius:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;padding:16px 2px 22px!important}
[data-frame="line"] .drm-read::before,[data-frame="line"] .drm-read::after,[data-frame="soft"] .drm-read::before,[data-frame="soft"] .drm-read::after,[data-frame="plain"] .drm-read::before,[data-frame="plain"] .drm-read::after{display:none!important}
[data-frame="line"] .drm-tx,[data-frame="soft"] .drm-tx,[data-frame="plain"] .drm-tx{background-image:none!important}
[data-frame="card"] .drm-read{background:var(--pp)!important;border-radius:var(--rad,16px)!important;box-shadow:0 10px 26px -18px rgba(0,0,0,.3)!important;border:none!important}
[data-frame="line"] .drm-t.ai{border:var(--fw,.5px) solid var(--s-rule);border-radius:var(--rad,8px);padding:17px 15px 13px;background:var(--fbg);margin-bottom:24px}
[data-frame="soft"] .drm-t.ai{background:color-mix(in srgb,var(--k) 6%,var(--fbg));border-radius:var(--rad,12px);padding:14px 16px;margin-bottom:18px}
[data-frame="plain"] .drm-t.ai{padding:2px 2px 18px;border-bottom:var(--fw,.5px) solid var(--s-rule);margin-bottom:18px}
[data-frame="line"] .drm-t.ai .drm-tx,[data-frame="soft"] .drm-t.ai .drm-tx,[data-frame="plain"] .drm-t.ai .drm-tx{border:none;padding:0}
[data-frame="line"] .drm-t.me,[data-frame="soft"] .drm-t.me,[data-frame="plain"] .drm-t.me{margin-left:16%}
[data-me="left"] .drm-t.me{margin-left:0!important}
[data-frame="line"] .drm-t.me .drm-tx,[data-frame="soft"] .drm-t.me .drm-tx,[data-frame="plain"] .drm-t.me .drm-tx{border:none;padding:9px 13px;background:color-mix(in srgb,var(--k) 7%,transparent);border-radius:var(--rad,8px);opacity:1}
[data-frame="line"] .drm-t.me header::before,[data-frame="soft"] .drm-t.me header::before,[data-frame="plain"] .drm-t.me header::before{display:none}
[data-frame="line"] .drm-t.me header,[data-frame="soft"] .drm-t.me header,[data-frame="plain"] .drm-t.me header{justify-content:flex-end}
[data-frame="line"][data-nm="tag"] .drm-t.ai header{position:absolute;top:-.95em;left:12px;margin:0;padding:0 10px;font-size:.68em;line-height:1.9;background:var(--tagc,var(--pp));border:var(--fw,.5px) solid var(--s-rule);border-radius:999px;letter-spacing:.14em;color:var(--s-sub)}
[data-frame="line"][data-nm="tag"] .drm-t.ai header::after{display:none}
[data-nm="none"] .drm-t.ai header{display:none}

/* —— 对白突出方式 —— */
[data-dqs="tone"] .dq{background:none!important;border:none!important;font-weight:500!important;text-decoration:none!important}
[data-dqs="line"] .dq{background:none!important;border-bottom:.5px solid var(--s-ac)!important;text-decoration:none!important}
[data-dqs="mark"] .dq{background:linear-gradient(transparent 68%,color-mix(in srgb,var(--s-ac) 26%,transparent) 68%)!important;border:none!important}
[data-dqs="bold"] .dq{background:none!important;border:none!important;font-weight:700!important}
[data-dqs="none"] .dq{background:none!important;border:none!important;font-weight:inherit!important;color:inherit!important}

/* —— 颜文字装饰 —— */
.dc{font-style:normal;font-family:system-ui,-apple-system,"Apple Symbols","Noto Sans Symbols","Segoe UI Symbol",sans-serif;letter-spacing:.08em;color:var(--s-sub,#999);opacity:.85;white-space:nowrap}
.drm-t header .dc{margin-left:6px;font-size:1.05em;letter-spacing:.02em}
.drm-t .dc.corner{position:absolute;top:6px;right:10px;font-size:.78em;opacity:.55}
.drm-t .dc.tail{display:block;text-align:center;margin-top:8px;font-size:.78em;opacity:.55}
.drm-brk span .dc{margin:0 6px}
.drm-busy .dc{margin-right:2px}
.drm-empty .dc{display:block;margin-bottom:10px;font-size:1.1em}

/* —— 美化面板：分页 / 预览 / 色卡 —— */
.drm-pv{position:sticky;top:0;z-index:5;margin:0 0 8px;border-radius:14px;overflow:hidden;max-height:250px;isolation:isolate;border:.5px solid var(--border-color)}
.drm-pv .drm-read{position:relative;z-index:1;margin:10px 10px 0;padding:12px 2px 6px!important}
.drm-pv .drm-t{margin-bottom:16px!important}
.drm-lt{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none;position:sticky;top:250px;z-index:4;background:var(--bg-color)}
.drm-lt::-webkit-scrollbar{display:none}
.drm-lt button{flex:none;border:.5px solid var(--border-color);background:var(--card-bg);color:var(--text-sub);border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer}
.drm-lt button.on{background:var(--text-main);color:var(--bg-color);border-color:transparent}
.drm-sws{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.drm-sws button{width:34px;height:34px;border-radius:50%;border:.5px solid var(--border-color);cursor:pointer;padding:0}
@media (prefers-reduced-motion:reduce){.drm-fx i{animation:none!important}}

/* —— 动效：可调密度 / 速度 / 风向 / 颜色 / 符号粒子 —— */
.drm-fx{opacity:var(--fxo,.7)}
.drm-pv .drm-fx{z-index:0}
.drm-fx.has-c i{background:var(--fxc)!important;border-color:var(--fxc)!important}
.drm-fx.has-c[data-fx=firefly] i{box-shadow:0 0 9px 3px var(--fxc)}
.drm-fx[data-fx=sym] i{top:-6%;width:auto;height:auto;font-style:normal;font-size:calc(14px*var(--s));line-height:1;color:var(--fxc,rgba(140,130,125,.85));background:none;animation:drmSnow var(--d) linear infinite;animation-delay:var(--dl);white-space:nowrap}
[data-lum="d"] .drm-fx[data-fx=sym] i{color:var(--fxc,rgba(255,255,255,.85))}
.drm-fx[data-fx=sym][data-mv=rise] i{top:auto;bottom:-6%;animation-name:drmRise;animation-timing-function:linear}
.drm-fx[data-fx=sym][data-mv=float] i{top:var(--y);animation-name:drmFly;animation-timing-function:ease-in-out;animation-direction:alternate}
@keyframes drmFall{from{transform:translate(0,-10vh);opacity:0}10%{opacity:.8}to{transform:translate(var(--wx,0px),115vh);opacity:.2}}
@keyframes drmSnow{from{transform:translate(0,-8vh)}50%{transform:translate(calc(18px + var(--wx,0px)/2),50vh)}to{transform:translate(calc(-10px + var(--wx,0px)),112vh)}}
@keyframes drmPetal{from{transform:translate(0,-8vh) rotate(0)}to{transform:translate(calc(var(--wx,0px) - 40px),112vh) rotate(540deg)}}
.drm-t.ai.fresh .drm-tx p{animation-delay:calc(var(--i)*var(--fdt,.32s))}

/* —— 开场前的提示：默认一行小字，不再占一大块 —— */
.drm-read.empty{background:none!important;box-shadow:none!important;border:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;padding:6px 0!important}
.drm-read.empty::before,.drm-read.empty::after{display:none!important}
.drm-empty.mini{padding:8px 4px;text-align:center;display:flex;flex-direction:column;gap:2px;align-items:center}
.drm-empty.mini b{display:block;margin:0;font:500 .95em var(--ff,var(--drm-serif));letter-spacing:.2em}
.drm-empty.mini span{font-size:.82em;color:var(--s-sub)}
.drm-empty.mini small{font-size:.74em;color:var(--s-sub);opacity:.8;margin-top:4px}
.drm-empty.mini .dc{display:inline;margin:0 0 4px}
/* —— 图片 / 手绘粒子 —— */
.drm-fx[data-fx=img] i{top:-6%;width:calc(22px*var(--s));height:calc(22px*var(--s));background:none!important;animation:drmSnow var(--d) linear infinite;animation-delay:var(--dl)}
.drm-fx[data-fx=img] i img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.drm-fx[data-fx=img][data-mv=rise] i{top:auto;bottom:-6%;animation-name:drmRise;animation-timing-function:linear}
.drm-fx[data-fx=img][data-mv=float] i{top:var(--y);animation-name:drmFly;animation-timing-function:ease-in-out;animation-direction:alternate}
.drm-cv{display:grid;place-items:center;margin:4px 0 10px}
.drm-cv canvas{width:min(280px,80vw);height:min(280px,80vw);border:.5px solid var(--border-color);border-radius:14px;touch-action:none;background:repeating-conic-gradient(#e9e6e2 0 25%,#f7f5f2 0 50%) 0 0/16px 16px}
.drm-fxg{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0}
.drm-fxi{position:relative;width:54px;height:54px;border:.5px solid var(--border-color);border-radius:10px;background:repeating-conic-gradient(#e9e6e2 0 25%,#f7f5f2 0 50%) 0 0/10px 10px;display:grid;place-items:center}
.drm-fxi img{max-width:44px;max-height:44px}
.drm-fxi button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:none;background:var(--text-main);color:var(--bg-color);font-size:12px;line-height:1;cursor:pointer;padding:0}

/* —— v91：线条极简阅读版式 / 简洁场景标签 —— */
[data-frame="plain"] .drm-read,[data-frame="line"] .drm-read,[data-frame="soft"] .drm-read{padding-left:var(--ins,22px)!important;padding-right:var(--ins,22px)!important}
[data-frame="plain"] .drm-t.ai{padding:2px 0 26px;border-bottom:none;margin-bottom:22px;background:linear-gradient(var(--s-rule),var(--s-rule)) bottom center/34% var(--fw,1px) no-repeat}
[data-frame="plain"] .drm-t.ai:last-child{background:none;padding-bottom:6px}
[data-frame="plain"] .drm-t.me{margin-left:12%}
[data-frame="plain"] .drm-t.me .drm-tx{background:none;border-radius:0;padding:2px 0 2px 12px;border-left:1px solid var(--s-ac)}
.drm-sn-wrap{display:flex;flex-wrap:wrap;gap:8px}
.drm-sn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:.5px solid var(--border-color);border-radius:999px;background:transparent;color:var(--text-main);font-size:13.5px;cursor:pointer}
.drm-sn i{width:7px;height:7px;border-radius:50%;flex:none;background:var(--p2);filter:saturate(var(--sat,.5))}
.drm-sn.on{border-color:var(--text-main);background:color-mix(in srgb,var(--text-main) 6%,transparent)}
.drm-sn.add{border-style:dashed;color:var(--text-sub)}

/* —— v92：剧场字体不被全局字体盖掉 / 美化预览框更矮 —— */
html .ownfont .drm-read,html .ownfont .drm-read *:not(svg):not(.dc),html .ownfont .drm-in textarea,html .ownfont .drm-tt b{font-family:var(--ff)!important}
html.font-all .ownfont .drm-read,html.font-all .ownfont .drm-read *:not(svg):not(svg *):not(.dc),html.font-all .ownfont .drm-in textarea,html.font-all .ownfont .drm-tt b{font-family:var(--ff)!important}

/* —— v93：TA 的框 / 我的框 分开设置 —— */
[data-unm="none"] .drm-t.me header{display:none}
[data-uml]:not([data-skin="film"]) .drm-t.me{margin-left:var(--uml,14%)}
[data-me="left"] .drm-t.me{margin-left:0!important}
[data-uink] .drm-t.me .drm-tx{color:var(--uink)}
[data-uframe] .drm-t.me .drm-tx{box-sizing:border-box;background:none;border:none;border-radius:0;box-shadow:none;padding:2px 0;opacity:1;font-style:normal}
[data-uframe="bar"] .drm-t.me .drm-tx{padding:2px 0 2px 12px;border-left:var(--ufw,1px) solid var(--s-ac)}
[data-uframe="block"] .drm-t.me .drm-tx{padding:9px 13px;border-radius:var(--urad,10px);background:color-mix(in srgb,var(--k) var(--ufp,11%),transparent)}
[data-uframe="line"] .drm-t.me .drm-tx{padding:13px 14px 10px;border:var(--ufw,.5px) solid var(--s-rule);border-radius:var(--urad,8px);background:color-mix(in srgb,var(--pp) var(--ufo,55%),transparent)}
[data-uframe="bubble"] .drm-t.me{display:flex;flex-direction:column;align-items:flex-end}
[data-me="left"][data-uframe="bubble"] .drm-t.me{align-items:flex-start}
[data-uframe="bubble"] .drm-t.me header{align-self:stretch}
[data-uframe="bubble"] .drm-t.me .drm-tx{width:fit-content;max-width:100%;padding:9px 14px;border-radius:var(--urad,16px) var(--urad,16px) 4px var(--urad,16px);background:color-mix(in srgb,var(--s-ac) var(--ufq,30%),transparent)}
[data-me="left"][data-uframe="bubble"] .drm-t.me .drm-tx{border-radius:var(--urad,16px) var(--urad,16px) var(--urad,16px) 4px}
[data-uframe="none"] .drm-t.me .drm-tx{padding:2px 0}
[data-uframe="line"][data-unm="tag"] .drm-t.me header{position:absolute;top:-.95em;right:12px;left:auto;margin:0;padding:0 10px;font-size:.68em;line-height:1.9;background:var(--tagc,var(--pp));border:var(--ufw,.5px) solid var(--s-rule);border-radius:999px;letter-spacing:.14em;color:var(--s-sub);z-index:1}
[data-uframe="line"][data-unm="tag"] .drm-t.me header::before,[data-uframe="line"][data-unm="tag"] .drm-t.me header::after{display:none}
[data-me="left"][data-uframe="line"][data-unm="tag"] .drm-t.me header{right:auto;left:12px}
/* 正在调的那一边提亮，另一边淡一点 */
.drm-pv[data-focus="ai"] .drm-t.me,.drm-pv[data-focus="me"] .drm-t.ai{opacity:.42}

/* —— v93：美化预览框随内容长高（不再把我的框切掉），标签栏吸在它下面 —— */
.drm-pv{max-height:250px;overflow-y:auto;overscroll-behavior:contain}
.drm-pv .drm-read{--lh:1.7}
.drm-pv .drm-t{margin-bottom:12px!important}.drm-pv .drm-t:last-child{margin-bottom:0!important}
.drm-lt{top:0}

/* —— v93：键盘弹出时自适应可视高度 ——
   全局会把手机再「抬」一截（给 iOS 键盘上那条 ∧∨✓ 留位置），在有的系统上键盘上方就多出一片空白。
   剧场演出页改成：手机容器刚好等于可视区域高度，只留「美化 → 行为 → 键盘上方留白」里设的那一点。 */
html.xfull.kb .phone:has(#dramaApp.playing:not(.hidden)){height:calc(var(--vvh,100%) - var(--drm-lift,0px))}
html.tkb .drm-dock,html.kb .drm-dock{padding-bottom:10px}

/* —— v94：我的文字靠右（竖线也换到右边） —— */
[data-ual="right"] .drm-t.me .drm-tx{text-align:right}
[data-ual="right"]:not([data-uframe]):not([data-frame="line"]):not([data-frame="soft"]) .drm-t.me .drm-tx,[data-ual="right"][data-uframe="bar"] .drm-t.me .drm-tx{border-left:none;border-right:var(--ufw,1px) solid var(--s-ac);padding:2px 12px 2px 0}

/* —— v95：文字排版整齐 + 对话框跟着字数走 ——
   1) 正文默认两端对齐：每一行的左右边都齐，不再一行长一行短；中文按「标点不开头」规则断行，英文/长网址不会把版面撑破。
   2) 「我」的框、带框的 TA 回复：宽度由文字多少决定（一个字就是一个小气泡，长句子最宽到 86%），不再是固定的整行宽。 */
.drm-tx{line-break:strict;word-break:normal;overflow-wrap:anywhere;text-wrap:wrap;text-justify:inter-character;font-kerning:normal}
[data-align="justify"] .drm-tx{text-align:justify;text-align-last:left}
.drm-tx p{text-align:inherit}
.dq,.th,em.ac{-webkit-box-decoration-break:clone;box-decoration-break:clone}
.dq{font-weight:inherit}
[data-indent="1"] .drm-t.ai .drm-tx p{text-indent:2em}

.drm-read .drm-t.me{width:fit-content;min-width:3.4em;max-width:calc(100% - var(--uml,14%));margin-left:auto!important;margin-right:0}
[data-me="left"] .drm-read .drm-t.me{margin-left:0!important;margin-right:auto}
[data-skin="film"] .drm-read .drm-t.me{width:auto;max-width:100%;margin-left:0!important;margin-right:0}
[data-frame="line"] .drm-read .drm-t.ai,[data-frame="soft"] .drm-read .drm-t.ai{width:fit-content;min-width:min(100%,8em);max-width:100%}
[data-uframe="bubble"] .drm-read .drm-t.me .drm-tx{max-width:100%}
[data-uframe="bubble"] .drm-read .drm-t.me .drm-tx p{text-indent:0}
/* 气泡：小尾巴 + 轻轻的阴影，短句更像聊天 */
[data-uframe="bubble"] .drm-t.me .drm-tx{box-shadow:0 1px 0 color-mix(in srgb,var(--s-ac) 28%,transparent);overflow-wrap:anywhere}
.drm-t.me .drm-tx{text-wrap:pretty}

/* —— v103：正文自动对齐 + 对话框贴着文字 ——
   1) 正文：去掉 v95 加的 line-break:strict / overflow-wrap:anywhere / text-justify（iPhone 的 Safari 遇到它们会提前换行，
      一段一个宽度，右边参差不齐），换成最普通的换行规则 + 两端对齐：每行铺满整行，整块文字是一个方块，段首统一缩进 2 字。
   2) 「我」的对话框：行距收紧、上下留白收小，高度完全由文字决定（一行字就是一行高，两行字就是两行高），不再固定撑高。 */
.drm-read .drm-tx{line-break:auto;word-break:normal;overflow-wrap:break-word;text-wrap:wrap;hyphens:none;text-justify:auto;font-kerning:normal}
[data-align="justify"] .drm-read .drm-t.ai .drm-tx,[data-align="justify"] .drm-read .drm-t.ai .drm-tx p{text-align:justify;text-align-last:left}
.drm-read .drm-t.ai .drm-tx{width:auto;max-width:100%}
.drm-read .drm-t.ai .drm-tx p{display:block;width:auto;max-width:none;box-sizing:border-box}
[data-indent="1"] .drm-read .drm-t.ai .drm-tx p{text-indent:2em}

.drm-read .drm-t.me .drm-tx{height:auto;min-height:0;line-height:1.55!important;padding-top:5px!important;padding-bottom:5px!important}
.drm-read .drm-t.me .drm-tx p{margin:0 0 .35em;line-height:inherit;text-indent:0}
.drm-read .drm-t.me .drm-tx p:last-child{margin-bottom:0}
[data-uframe="bar"] .drm-read .drm-t.me .drm-tx,[data-uframe="none"] .drm-read .drm-t.me .drm-tx{padding-top:1px!important;padding-bottom:1px!important}
[data-uframe="bubble"] .drm-read .drm-t.me .drm-tx,[data-uframe="block"] .drm-read .drm-t.me .drm-tx{padding-left:12px;padding-right:12px}
.drm-read .drm-t.me{margin-bottom:16px}
.drm-read .drm-t.me header{margin-bottom:4px}
