/* ============ 计费 / 账户 / i18n 相关样式 ============ */
.admin-only{display:none!important}
body.is-admin .admin-only{display:revert!important}
body.is-admin .dropdown button.admin-only{display:block!important}
.err-text{color:var(--red)} .warn-text{color:var(--amber)}
.lang-sel{width:auto;padding:4px 8px;font-size:12px;border-radius:999px}
.balance-btn{background:#1a1433;border:1px solid #4c3a8a;color:#e9d5ff;border-radius:999px;padding:4px 12px;cursor:pointer;font-size:12px}
.balance-btn:hover{border-color:var(--violet)}
.user-menu{position:relative}
.user-btn{display:inline-flex;align-items:center;gap:6px;padding:3px 10px}
.dropdown{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;background:var(--panel);border:1px solid #2a4478;border-radius:12px;padding:6px;z-index:40;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.dropdown[hidden]{display:none}
.dropdown button{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px}
.dropdown button:hover{background:var(--panel2)}
.dd-head{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;flex-direction:column;gap:3px}
.pill.plan-month{color:#93c5fd;border-color:#1e4a7a}.pill.plan-year{color:var(--amber);border-color:#7a5a12}
.hub-cost{margin-left:auto;text-align:right;line-height:1.5}
.hub-cost.warn{color:var(--amber)} .hub-cost.bad{color:var(--red)}

/* 登录 */
.login-screen{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 30% 20%,#13234a 0,#070d1a 60%)}
.login-screen[hidden]{display:none}
.login-box{width:380px;max-width:92vw;background:var(--panel);border:1px solid #2a4478;border-radius:18px;padding:26px 28px;display:flex;flex-direction:column;gap:10px;box-shadow:0 30px 80px rgba(0,0,0,.6);text-align:center}
.login-box label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim);text-align:left}
.login-box label[hidden]{display:none}
.login-logo{display:flex;justify-content:center}
.login-title{font-size:20px;font-weight:700}
.login-tabs{display:flex;gap:4px;background:var(--bg2);border-radius:10px;padding:3px;margin:6px 0}
.login-tabs button{flex:1;border:0;background:none;padding:7px;border-radius:8px;cursor:pointer;color:var(--dim)}
.login-tabs button.active{background:var(--panel2);color:var(--text);font-weight:600}
.init-admin{background:#2a1f05;border:1px solid #7a5a12;color:#fde68a;border-radius:10px;padding:8px 10px;font-size:12px;text-align:left;line-height:1.6}
.init-admin[hidden]{display:none}
.btn.full{width:100%;padding:9px}
.login-box .lang-sel{align-self:center}

/* 全屏页面 */
.page{position:fixed;inset:0;z-index:45;background:rgba(2,6,15,.78);display:flex;align-items:stretch;justify-content:center;padding:28px}
.page[hidden]{display:none}
.page-box{width:1180px;max-width:100%;background:var(--panel);border:1px solid #2a4478;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.page-h{display:flex;align-items:center;gap:16px;padding:12px 18px;border-bottom:1px solid var(--line);font-weight:700;font-size:16px}
.page-h #pageClose{margin-left:auto}
.page-tabs{display:flex;gap:4px}
.page-tabs button{background:none;border:1px solid transparent;border-radius:8px;padding:5px 12px;cursor:pointer;color:var(--dim);font-size:13px}
.page-tabs button.active{background:var(--panel2);border-color:var(--line);color:var(--text)}
.page-body{padding:16px 20px;overflow:auto;flex:1}
.page-body h3{margin:18px 0 10px;font-size:14px;color:#93c5fd}
.page-body h4{margin:14px 0 8px;font-size:13px;color:#c4b5fd}

.rc-top,.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.stat{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.stat .sl{font-size:12px;color:var(--dim)} .stat .sv{font-size:22px;font-weight:700;margin:4px 0}
.stat .ss{font-size:11px;color:var(--dim)} .stat a{color:var(--blue)}
.stat.good .sv{color:var(--green)} .stat.bad .sv{color:var(--red)}
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.pcard{position:relative;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px}
.pcard.current{border-color:var(--green)}
.pcard.plan-month{background:linear-gradient(160deg,#0d2340,#0b1426)} .pcard.plan-year{background:linear-gradient(160deg,#2a1f05,#0b1426);border-color:#7a5a12}
.pc-name{font-weight:700;font-size:15px} .pc-price{font-size:22px;font-weight:700;color:#e9d5ff}
.pcard ul{margin:0;padding-left:18px;font-size:12px;color:var(--dim);flex:1} .pcard li{margin:2px 0}
.pc-tag{position:absolute;top:10px;right:10px;font-size:11px;background:#7a5a12;color:#fde68a;border-radius:999px;padding:2px 8px}
.bonus{color:var(--green);font-size:12px}
.pms{display:flex;flex-wrap:wrap;gap:8px}
.pm{display:inline-flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;cursor:pointer;font-size:13px}
.pm input{width:auto} .pm.on{border-color:var(--blue);background:#0b2233} .pm.off{opacity:.55;cursor:not-allowed}
.note{margin-top:12px;font-size:12px;color:var(--dim);background:var(--bg2);border:1px dashed var(--line);border-radius:10px;padding:8px 12px;line-height:1.6}
.warn-note{color:#fde68a;border-color:#7a5a12;background:#1f1704}
.chip.done{border-color:var(--green);color:var(--green)}

/* 支付对话框 */
.pay-box{display:flex;gap:16px;align-items:flex-start}
.qr{width:180px;height:180px;background:#fff;border-radius:10px;padding:6px;flex:none}
.pay-info{display:flex;flex-direction:column;gap:6px;font-size:13px;min-width:0}
.pay-amt{font-size:26px;font-weight:700;color:var(--green)}
.crypto-info{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:3px}
.crypto-info .big{font-size:17px;color:var(--amber)} .addr{font-size:11px;word-break:break-all}
.pay-status{font-weight:600;color:var(--blue)} .pay-status.paid{color:var(--green)} .pay-status.partial{color:var(--amber)}
.pay-status.expired,.pay-status.failed{color:var(--red)}
.sim{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.dlg-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--line)}

/* 表格 */
.tbl{width:100%;border-collapse:collapse;font-size:12px}
.tbl th{text-align:left;color:var(--dim);font-weight:500;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:6px 8px;border-bottom:1px solid #16243f;vertical-align:middle}
.tbl tr:hover td{background:#0c1730}
.tbl input:not([type=checkbox]),.tbl select{padding:3px 6px;font-size:12px}
.tbl input.num{width:80px!important}
.tbl .acts{display:flex;flex-wrap:wrap;gap:4px}
.tbl .dimrow td{opacity:.65}
.neg{color:var(--red)} .posi{color:var(--green)}
.ostat-paid{color:var(--green);border-color:#11604a}.ostat-partial{color:var(--amber);border-color:#7a5a12}
.ostat-expired,.ostat-failed,.ostat-closed{color:var(--red);border-color:#7a2020}
.bar .fill.redfill{background:var(--red)} .bar .fill.amberfill{background:var(--amber)}
.tbl .bar{width:120px;display:inline-block;vertical-align:middle;margin-right:6px}

/* 图表 */
.charts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.chart-box{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.chart-box.wide{grid-column:1/-1}
.chart-box h4{margin:0 0 6px!important}
.chart svg{width:100%;height:190px;display:block}
.chart .ax{fill:#7f8fb3;font-size:10px;font-family:var(--mono)}
.legend{display:flex;gap:12px;font-size:11px;color:var(--dim);margin-bottom:4px}
.lg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}

/* 开关 */
.switch{position:relative;display:inline-block;width:38px;height:20px}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:#26324d;border-radius:99px;cursor:pointer;transition:.2s}
.switch span:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:#cbd5e1;border-radius:50%;transition:.2s}
.switch input:checked+span{background:#059669}.switch input:checked+span:before{transform:translateX(18px)}
.stats + .chart-box,.stats + .charts{margin-top:12px}

/* ---------- 部门分组 / 制作看板 / 模型配置 ---------- */
.dept-h { font-size: 11px; letter-spacing: .08em; color: var(--amber, #fbbf24); text-transform: uppercase; margin: 8px 2px 2px; padding-bottom: 2px;
  border-bottom: 1px dashed rgba(251, 191, 36, .35); font-weight: 600; }
.dept-h:first-child { margin-top: 0; }
.hidden { display: none !important; }
.prod-grid { display: grid; grid-template-columns: minmax(280px, 400px) 1fr; gap: 14px; align-items: start; }
.prod-video { position: sticky; top: 0; }
.final-video { width: 100%; max-height: 72vh; background: #000; border-radius: 10px; aspect-ratio: 9 / 16; }
.prod-side { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.prod-side .chart-box h4 { margin: 0 0 6px; }
.sb-thumb { width: 54px; height: 96px; object-fit: cover; border-radius: 8px; background: #0b1426; display: block; border: 1px solid #1f2f50; }
.sb-thumbs { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.sb-thumbs .sb-thumb { margin: 0; }
.cast-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0 14px; }
@media (max-width: 900px) { .cast-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cast-card { background: #0f1a30; border: 1px solid #1f2f50; border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.cast-card .cast-avatar { aspect-ratio: 1 / 1; width: 100%; object-fit: cover; display: block; background: #0b1426; }
.cast-card .cast-avatar.placeholder { display: flex; align-items: center; justify-content: center; color: #7f8fb3; font-size: 12px; background: #0b1426; border-bottom: 1px solid #1f2f50; }
.cast-card .cast-body { padding: 8px 10px 10px; }
.cast-card .cast-name { font-size: 13px; font-weight: 600; color: #dbe6ff; margin: 0 0 4px; }
.cast-card .cast-look { font-size: 11px; color: #7f8fb3; line-height: 1.45; margin: 0; }
.cast-card .cast-meta { font-size: 10px; color: #7f8fb3; margin-top: 4px; font-family: var(--mono, monospace); }
.tbl tr.overdue td { background: rgba(239, 68, 68, .16); color: #fecaca; }
.tbl tr.overdue td:first-child { border-left: 3px solid #ef4444; }
.blk { display: grid; grid-template-columns: minmax(300px, 520px) 1fr; gap: 14px; align-items: start; }
.blk-img img { width: 100%; border-radius: 8px; background: #fff; display: block; }
.blk-info h4 { margin: 10px 0 4px; }
.blk-strip { display: flex; gap: 6px; overflow-x: auto; margin-top: 10px; padding-bottom: 4px; }
.blk-strip img { height: 70px; border-radius: 4px; opacity: .55; cursor: pointer; border: 2px solid transparent; background: #fff; }
.blk-strip img.on { opacity: 1; border-color: #38bdf8; }
.curve { display: flex; align-items: flex-end; gap: 3px; height: 70px; padding: 4px; background: rgba(255,255,255,.03); border-radius: 6px; margin-bottom: 6px; }
.curve span { flex: 1; background: linear-gradient(#fb7185, #a78bfa); border-radius: 2px 2px 0 0; min-height: 2px; }
.tree { line-height: 1.5; columns: 2; }
.full { width: 100%; }
@media (max-width: 900px) { .prod-grid, .blk { grid-template-columns: 1fr; } }
.roles { grid-template-rows: none !important; grid-auto-flow: row !important; gap: 6px 9px !important; align-content: start; }
.roles .dept-h { grid-column: 1 / -1; }
.roles .role { min-height: 54px; padding: 6px 9px; }

/* 制作看板按钮：与「开始」同尺寸，醒目的橙粉渐变 */
.btn.prod-btn { background: linear-gradient(135deg, #f59e0b, #ec4899); color: #fff; border-color: transparent; font-weight: 600;
  box-shadow: 0 0 0 1px rgba(236, 72, 153, .35), 0 4px 14px rgba(236, 72, 153, .25); }
.btn.prod-btn:hover { filter: brightness(1.1); }
.btn.prod-btn.has-output { animation: prodGlow 2.4s ease-in-out infinite; }
@keyframes prodGlow { 50% { box-shadow: 0 0 0 1px rgba(245, 158, 11, .6), 0 4px 22px rgba(245, 158, 11, .45); } }
.badge-openai { background: #10a37f; color: #fff; border-radius: 6px; padding: 1px 6px; font-size: 10px; font-weight: 700; margin-left: 4px; }
.tbl tr.openai-row td { background: rgba(16, 163, 127, .07); }

/* 摄制组折叠 */
.roles-h { display: flex; align-items: center; gap: 8px; }
.roles-h .crew-hint { flex: 1; }
.crew-toggle { background: none; border: 0; color: inherit; font: inherit; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; padding: 2px 4px; border-radius: 6px; }
.crew-toggle:hover { background: rgba(255,255,255,.06); }
.crew-toggle .chev, .dept-h .chev { display: inline-block; transition: transform .18s; font-size: 11px; }
.crew-toggle.closed .chev, .dept-h.closed .chev { transform: rotate(-90deg); }
.crew-all { white-space: nowrap; }
.dept-h { cursor: pointer; user-select: none; display: flex; align-items: center; gap: 6px; border-radius: 4px; }
.dept-h:hover { background: rgba(251, 191, 36, .08); }
.dept-h:focus-visible { outline: 1px solid var(--amber, #fbbf24); }
.dept-h .dn { flex: 1; }
.dept-h .dc { font-size: 10px; color: #94a3b8; background: rgba(148,163,184,.14); border-radius: 99px; padding: 0 7px; letter-spacing: 0; }
.dept-h .db { font-size: 10px; color: #34d399; letter-spacing: 0; }
.crew-summary { grid-column: 1 / -1; padding: 10px; border: 1px dashed #2a3756; border-radius: 8px; text-align: center; }

/* 热榜看板 */
.trends-panel { border: 1px solid rgba(251, 113, 133, .45); background: linear-gradient(180deg, rgba(251,113,133,.10), rgba(245,158,11,.04) 60%, transparent); }
.trends-title { font-weight: 700; background: linear-gradient(90deg, #fb7185, #f59e0b); -webkit-background-clip: text; background-clip: text; color: transparent; }
.trend-src { display: flex; flex-wrap: wrap; gap: 4px; }
.tsrc { font-size: 10.5px; padding: 1px 6px; border-radius: 99px; border: 1px solid #2a3756; cursor: pointer; white-space: nowrap; }
.tsrc.ok { color: #6ee7b7; border-color: rgba(52,211,153,.4); } .tsrc.ok b { color: #e2e8f0; font-weight: 600; }
.tsrc.fail { color: #fca5a5; border-color: rgba(239,68,68,.5); background: rgba(239,68,68,.08); cursor: help; }
.tsrc.pending { color: #94a3b8; }
.tsrc.on { background: rgba(56,189,248,.18); border-color: #38bdf8; }
.trend-sel { flex: 1; min-width: 0; font-size: 12px; padding: 3px 6px; }
.trend-genres { margin-top: 8px; display: flex; flex-direction: column; gap: 3px; }
.tg-row { display: grid; grid-template-columns: 84px 1fr 26px; align-items: center; gap: 6px; font-size: 11.5px; cursor: pointer; border-radius: 4px; }
.trend-genres.big .tg-row { grid-template-columns: 110px 1fr 36px; font-size: 13px; }
.tg-row:hover, .tg-row.on { background: rgba(251,113,133,.12); }
.tg-bar { height: 8px; background: rgba(255,255,255,.05); border-radius: 99px; overflow: hidden; }
.tg-bar i { display: block; height: 100%; background: linear-gradient(90deg, #f59e0b, #ec4899); border-radius: 99px; }
.tg-n { color: #94a3b8; text-align: right; font-size: 10.5px; }
.trend-list { margin-top: 8px; max-height: 300px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; padding-right: 2px; }
.titem { display: flex; gap: 6px; padding: 4px 2px; border-bottom: 1px solid rgba(255,255,255,.04); }
.titem .tr { width: 18px; text-align: right; color: #f59e0b; font-size: 11px; padding-top: 1px; flex: none; }
.titem .tb { min-width: 0; flex: 1; }
.titem .tt { font-size: 12.5px; line-height: 1.35; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.titem a, .trend-page a { color: inherit; text-decoration: none; } .titem a:hover, .trend-page a:hover { color: #38bdf8; }
.titem .tm { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 10.5px; color: #94a3b8; margin-top: 1px; }
.tgen { font-size: 10px; padding: 0 5px; border-radius: 4px; background: rgba(236,72,153,.18); color: #f9a8d4; }
.tgen.news { background: rgba(148,163,184,.14); color: #94a3b8; }
.titem .th { color: #fdba74; }
.trend-page { display: grid; grid-template-columns: minmax(260px, 360px) 1fr; gap: 14px; align-items: start; }
.trend-fail { border-color: rgba(239,68,68,.45); }
@media (max-width: 900px) { .trend-page { grid-template-columns: 1fr; } }
.trends-panel .panel-h { flex-wrap: wrap; gap: 2px 8px; }
.trend-summary { line-height: 1.6; margin-top: 2px; }
.trend-list.compact { max-height: none; overflow: visible; margin-top: 4px; }
.trend-full-btn { background: linear-gradient(135deg, #fb7185, #f59e0b); color: #fff; border-color: transparent; font-weight: 600; }
.ok-text { color: #6ee7b7; }
.page.fullscreen { padding: 0; }
.page.fullscreen .page-box { width: 100vw; max-width: 100vw; height: 100vh; border-radius: 0; border: 0; }
.page.fullscreen .trend-list { max-height: none; }

/* 平台账号管理 / 发布中心 */
.accounts-btn { background: linear-gradient(135deg, #6366f1, #06b6d4); color: #fff; border-color: transparent; font-weight: 600; }
.pub-note { padding: 8px 10px; border: 1px solid rgba(56,189,248,.35); background: rgba(56,189,248,.07); border-radius: 8px; line-height: 1.55; }
.pub-grid { display: grid; grid-template-columns: minmax(320px, 440px) 1fr; gap: 14px; align-items: start; }
.pub-pkg { display: flex; gap: 10px; }
.pub-cover { width: 90px; height: 160px; object-fit: cover; border-radius: 6px; background: #111; flex: none; }
.pub-target { margin-top: 8px; }
.tbl tr.fixable td { background: rgba(245, 158, 11, .10); }
.scroll-x { overflow-x: auto; }
.role-link { margin-top: 4px; font-size: 11px; background: rgba(99,102,241,.18); color: #c7d2fe; border: 1px solid rgba(99,102,241,.45); border-radius: 6px; padding: 1px 8px; cursor: pointer; }
.role-link:hover { background: rgba(99,102,241,.32); }
.role[data-key="operations"] { cursor: pointer; }
@media (max-width: 900px) { .pub-grid { grid-template-columns: 1fr; } }

/* 实时日志全屏 */
.log-full-btn { background: linear-gradient(135deg, #0ea5e9, #6366f1); color: #fff; border-color: transparent; font-weight: 600; padding: 2px 10px; }
.logfull { position: fixed; inset: 0; z-index: 60; background: #050b17; display: flex; flex-direction: column; }
.logfull[hidden] { display: none; }
.logfull-h { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.logfull-h .trend-sel { flex: none; width: auto; min-width: 120px; }
.lf-search { width: 220px; font-size: 12px; padding: 4px 8px; }
.logfull-feed { flex: 1 1 0; min-height: 0; overflow: auto; max-height: none !important; margin: 10px 16px 16px; font-size: 12.5px; }
.lv-role { color: #a78bfa; margin-right: 6px; }
.lv-error { color: #fca5a5; } .lv-warn { color: #fcd34d; } .lv-ok { color: #86efac; }
/* Knowledge and asset pages retain the fixed top navigation. */
.top-right { flex-wrap:wrap; justify-content:flex-end; }
.library-nav { border-color:#45658d; background:#14273c; white-space:nowrap; }
.page.library-page { top:var(--library-top,66px); z-index:19; padding:14px; background:var(--bg); }
.library-page .page-box { width:100%; max-width:1600px; }
.library-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.library-toolbar input:not([type=file]) { width:230px; flex:1; min-width:140px; }
.library-toolbar select { width:auto; max-width:280px; }
.library-project-label { display:flex; align-items:center; gap:8px; }
.knowledge-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; }
.knowledge-grid .chart-box { margin:0; }
.knowledge-file { display:grid; grid-template-columns:1fr auto; width:100%; text-align:left; gap:6px; padding:14px 10px; background:transparent; color:var(--text); border:0; border-bottom:1px solid var(--line); cursor:pointer; }
.knowledge-file .mono { grid-row:2; overflow-wrap:anywhere; }
.knowledge-file:hover { background:var(--panel2); }
.asset-upload { margin:16px 0; }
.asset-upload > input { width:100%; margin-top:10px; }
.asset-upload input[type=file] { width:320px; max-width:100%; }
.asset-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; margin-top:16px; }
.asset-card { background:var(--panel2); border:1px solid var(--line); border-radius:12px; overflow:hidden; min-width:0; }
.asset-preview { background:#060c16; height:190px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.asset-preview img,.asset-preview video { width:100%; height:100%; object-fit:contain; }
.asset-preview audio { width:95%; }
.asset-image-open{position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;color:var(--text);cursor:zoom-in}
.asset-image-open:focus-visible{outline:2px solid var(--blue);outline-offset:-3px}
.asset-image-hint{position:absolute;right:8px;bottom:8px;padding:4px 8px;border-radius:6px;background:rgba(2,6,15,.8);font-size:12px;pointer-events:none}
.asset-image-dialog{padding:0;border:1px solid #2a4478;border-radius:16px;background:var(--panel);color:var(--text);width:min(1400px,94vw);max-width:94vw;max-height:94vh;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.asset-image-dialog::backdrop{background:rgba(2,6,15,.85)}
.asset-image-box{height:88vh;max-height:94vh;display:flex;flex-direction:column;overflow:hidden}
.asset-image-dialog .modal-h{gap:12px;flex-shrink:0}
#assetImageTitle{min-width:0;overflow-wrap:anywhere}
#assetImageClose{flex-shrink:0}
.asset-image-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 16px;flex-shrink:0}
.asset-image-toolbar a{text-decoration:none;color:var(--text);display:inline-flex;align-items:center}
.asset-image-toolbar [aria-pressed=true]{border-color:var(--blue);color:#7dd3fc}
.asset-image-viewport{min-height:0;flex:1;overflow:auto;background:#060c16;padding:12px;display:flex;align-items:center;justify-content:center}
.asset-image-viewport img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.asset-image-viewport.natural-size{display:block}
.asset-image-viewport.natural-size img{max-width:none;max-height:none;width:auto;height:auto;margin:0 auto}
.asset-image-help{padding:8px 16px;flex-shrink:0}
.asset-audio-icon { font-size:58px; color:#38bdf8; }
.asset-card-body { padding:14px; }
.asset-card-body h4 { margin:10px 0; overflow-wrap:anywhere; }
.asset-path { margin-top:8px; overflow-wrap:anywhere; }
@media(max-width:850px) { .brand-sub,.topbar #runPill,.topbar #llmPill { display:none; } .topbar { padding:8px; gap:8px; } .library-project-label { flex-wrap:wrap; } }
.asset-card a.btn { color:var(--text); text-decoration:none; display:inline-flex; align-items:center; }
.asset-version-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:16px}
.asset-version-card{border:1px solid var(--line);border-radius:14px;background:var(--panel2);overflow:hidden;min-width:0}
.asset-version-open{display:block;padding:0;width:100%;text-align:left;background:transparent;border:0;color:var(--text);cursor:pointer;font:inherit}
.asset-version-open:hover{background:rgba(56,189,248,.05)}
.asset-version-open:focus-visible{outline:2px solid var(--blue);outline-offset:-3px}
.asset-version-cover{height:170px;display:flex;align-items:center;justify-content:center;background:#08101f;overflow:hidden;font-size:52px}
.asset-version-cover img{height:100%;width:100%;object-fit:contain}
.asset-version-counts{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;color:var(--dim);font-size:12px}
.asset-version-counts span{padding:4px 7px;border:1px solid var(--line);border-radius:6px}
.asset-version-delete{padding:0 14px 14px;display:flex;justify-content:flex-end}
.asset-version-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.asset-document-preview{height:160px}
.asset-document-open{border:0;background:transparent;color:var(--text);font:inherit;cursor:pointer;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.asset-document-open span{font-size:42px}

.binance-qr{width:260px;max-width:45%;height:auto;border-radius:10px;flex:none}.pay-info input{display:block;width:100%;margin:8px 0}.pay-info{min-width:0}

.binance-qr-link{width:260px;max-width:45%;flex:none;color:var(--text);text-align:center;font-size:12px}.binance-qr-link .binance-qr{width:100%;max-width:100%;display:block;margin-bottom:8px}
