/* 织夜演播厅 · 回放中心 */
:root{
  --lrp-bg:#080b13;
  --lrp-panel:#101521;
  --lrp-panel-soft:#151b29;
  --lrp-border:rgba(191,199,224,.16);
  --lrp-border-strong:rgba(202,181,255,.42);
  --lrp-text:#f0f2f8;
  --lrp-muted:#9ba3b8;
  --lrp-faint:#737c92;
  --lrp-purple:#bca3ff;
  --lrp-cyan:#86e6ff;
  --lrp-danger:#ff8aa3;
  --lrp-shadow:0 28px 80px rgba(0,0,0,.48);
}
.lrp-page-locked{overscroll-behavior:none;}
.lrp-overlay,.lrp-overlay *{box-sizing:border-box;}
.lrp-overlay{position:fixed;z-index:10080;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(10px,2.4vw,30px);background:rgba(4,6,11,.84);color:var(--lrp-text);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;backdrop-filter:blur(15px);animation:lrpFadeIn .18s ease;}
.lrp-overlay[hidden]{display:none!important;}
.lrp-dialog{display:flex;width:min(1460px,100%);height:min(900px,100%);min-height:0;overflow:hidden;flex-direction:column;border:1px solid var(--lrp-border);border-radius:24px;background:linear-gradient(145deg,rgba(188,163,255,.04),transparent 28%),var(--lrp-bg);box-shadow:var(--lrp-shadow);}
.lrp-header{display:flex;flex:none;min-height:82px;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--lrp-border);background:rgba(16,21,33,.88);}
.lrp-heading{min-width:0;flex:1;}
.lrp-heading h2{max-width:100%;margin:2px 0 0;overflow:hidden;color:var(--lrp-text);font-size:clamp(18px,2.2vw,26px);font-weight:680;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;}
.lrp-heading p{max-width:min(760px,100%);margin:3px 0 0;overflow:hidden;color:var(--lrp-muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap;}
.lrp-kicker{display:block;color:var(--lrp-purple);font-size:9px;font-weight:750;letter-spacing:.22em;}
.lrp-header-actions{display:flex;align-items:center;gap:8px;}
.lrp-icon-btn,.lrp-quiet-btn,.lrp-search button,.lrp-folder-title button,.lrp-folder,.lrp-folder-more,.lrp-record-actions button,.lrp-timeline-controls button{border:1px solid var(--lrp-border);background:rgba(255,255,255,.035);color:var(--lrp-text);cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease;}
.lrp-icon-btn{display:grid;width:38px;height:38px;place-items:center;flex:none;border-radius:10px;font-size:22px;line-height:1;}
.lrp-quiet-btn{height:36px;padding:0 13px;border-radius:9px;font-size:12px;}
.lrp-icon-btn:hover,.lrp-quiet-btn:hover,.lrp-search button:hover,.lrp-record-actions button:hover,.lrp-timeline-controls button:hover{border-color:var(--lrp-border-strong);background:rgba(188,163,255,.1);}
.lrp-overlay button:focus-visible,.lrp-overlay input:focus-visible,.lrp-overlay select:focus-visible,.lrp-record-main:focus-visible{outline:2px solid var(--lrp-cyan);outline-offset:2px;}
.lrp-status{flex:none;margin:10px 18px 0;padding:9px 12px;border:1px solid var(--lrp-border);border-radius:10px;background:rgba(255,255,255,.035);color:var(--lrp-muted);font-size:12px;}
.lrp-status.is-error{border-color:rgba(255,138,163,.38);background:rgba(255,138,163,.09);color:#ffd2dc;}
.lrp-status.is-loading{display:flex;align-items:center;gap:8px;}
.lrp-status.is-loading span{width:12px;height:12px;border:2px solid rgba(134,230,255,.22);border-top-color:var(--lrp-cyan);border-radius:50%;animation:lrpSpin .8s linear infinite;}

/* 列表与分类 */
.lrp-library{display:grid;min-height:0;flex:1;grid-template-columns:220px minmax(0,1fr);}
.lrp-folder-nav{min-height:0;overflow:auto;padding:16px 12px;border-right:1px solid var(--lrp-border);background:rgba(16,21,33,.54);}
.lrp-folder-title{display:flex;align-items:center;justify-content:space-between;margin:0 5px 10px;color:var(--lrp-muted);font-size:11px;letter-spacing:.1em;}
.lrp-folder-title button{width:25px;height:25px;border-radius:7px;font-size:16px;line-height:1;}
.lrp-folder-row{display:grid;grid-template-columns:minmax(0,1fr) 25px 25px;align-items:center;gap:3px;margin-top:3px;}
.lrp-folder{display:flex;width:100%;min-width:0;height:36px;align-items:center;justify-content:space-between;gap:8px;padding:0 9px;border-color:transparent;border-radius:8px;background:transparent;color:var(--lrp-muted);font-size:11px;text-align:left;}
.lrp-folder>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lrp-folder em{min-width:20px;color:var(--lrp-faint);font-size:9px;font-style:normal;text-align:right;}
.lrp-folder:hover{background:rgba(255,255,255,.045);color:var(--lrp-text);}
.lrp-folder.is-active{border-color:rgba(188,163,255,.24);background:rgba(188,163,255,.12);color:#e8e0ff;}
.lrp-folder-row>.lrp-folder{grid-column:1;}
.lrp-folder-more{display:grid;width:25px;height:25px;place-items:center;opacity:0;border-color:transparent;border-radius:6px;background:transparent;color:var(--lrp-faint);font-size:11px;}
.lrp-folder-row:hover .lrp-folder-more,.lrp-folder-more:focus-visible{opacity:1;}
.lrp-folder-more:hover{background:rgba(255,255,255,.06);color:var(--lrp-text);}
.lrp-folder-more.is-danger:hover{background:rgba(255,138,163,.09);color:var(--lrp-danger);}
.lrp-records{min-width:0;min-height:0;overflow:auto;padding:18px;}
.lrp-search{display:flex;align-items:center;gap:7px;margin-bottom:14px;}
.lrp-search label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
.lrp-search input{width:min(460px,100%);height:38px;padding:0 12px;border:1px solid var(--lrp-border);border-radius:9px;background:rgba(255,255,255,.035);color:var(--lrp-text);font:inherit;font-size:12px;}
.lrp-search input::placeholder{color:var(--lrp-faint);}
.lrp-search button{height:36px;padding:0 12px;border-radius:8px;font-size:11px;}
.lrp-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start;}
.lrp-record{min-width:0;overflow:hidden;border:1px solid var(--lrp-border);border-radius:15px;background:linear-gradient(150deg,rgba(188,163,255,.05),transparent 35%),var(--lrp-panel);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;}
.lrp-record:hover{border-color:rgba(188,163,255,.3);transform:translateY(-1px);box-shadow:0 15px 28px rgba(0,0,0,.17);}
.lrp-record.is-pinned{border-color:rgba(134,230,255,.27);}
.lrp-record-main{display:flex;width:100%;min-width:0;flex-direction:column;gap:8px;padding:14px 14px 12px;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left;}
.lrp-record-main strong{max-width:100%;overflow:hidden;font-size:15px;font-weight:650;text-overflow:ellipsis;white-space:nowrap;}
.lrp-record-top{display:flex;min-height:20px;align-items:center;gap:6px;}
.lrp-mode,.lrp-pin-label,.lrp-favorite-label{display:inline-flex;align-items:center;min-height:19px;padding:2px 6px;border-radius:99px;font-size:9px;font-weight:650;}
.lrp-mode{background:rgba(188,163,255,.12);color:#ddcfff;}
.lrp-mode.is-timeline{background:rgba(134,230,255,.1);color:var(--lrp-cyan);}
.lrp-mode.is-video{background:rgba(255,138,163,.1);color:#ffb2c3;}
.lrp-pin-label{background:rgba(134,230,255,.08);color:var(--lrp-cyan);}
.lrp-favorite-label{color:#ffd68a;}
.lrp-record-topic{height:34px;overflow:hidden;color:var(--lrp-muted);font-size:11px;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.lrp-record-meta{display:flex;flex-wrap:wrap;gap:5px 12px;color:var(--lrp-faint);font-size:9px;}
.lrp-fallback-note{padding:7px 8px;border-left:2px solid #e4b567;border-radius:3px;background:rgba(228,181,103,.06);color:#d7bb8a;font-size:9px;line-height:1.45;}
.lrp-record-actions{display:flex;align-items:center;gap:5px;padding:9px 10px;border-top:1px solid var(--lrp-border);background:rgba(255,255,255,.015);}
.lrp-record-actions label{display:flex;min-width:0;flex:1;align-items:center;gap:5px;color:var(--lrp-faint);font-size:9px;}
.lrp-record-actions select,.lrp-timeline-controls select{min-width:0;height:27px;border:1px solid var(--lrp-border);border-radius:6px;background:var(--lrp-panel-soft);color:var(--lrp-muted);font-size:9px;}
.lrp-record-actions select{max-width:105px;flex:1;}
.lrp-record-actions button{height:27px;padding:0 7px;border-radius:6px;color:var(--lrp-muted);font-size:9px;white-space:nowrap;}
.lrp-record-actions button.is-danger:hover{border-color:rgba(255,138,163,.35);background:rgba(255,138,163,.09);color:var(--lrp-danger);}
.lrp-empty{display:flex;min-height:240px;align-items:center;justify-content:center;flex-direction:column;grid-column:1/-1;padding:30px;color:var(--lrp-muted);text-align:center;}
.lrp-empty>span{margin-bottom:8px;color:var(--lrp-purple);font-size:42px;font-weight:200;}
.lrp-empty b{color:var(--lrp-text);font-size:14px;}
.lrp-empty p{max-width:420px;margin:7px 0 0;color:var(--lrp-faint);font-size:11px;line-height:1.65;}
.lrp-empty.is-compact{min-height:180px;}

/* 播放器公共信息 */
.lrp-replay-badges{display:flex;flex:none;flex-wrap:wrap;gap:7px;padding:10px 18px;border-bottom:1px solid var(--lrp-border);background:rgba(255,255,255,.018);}
.lrp-replay-badges span{padding:4px 8px;border:1px solid var(--lrp-border);border-radius:99px;color:var(--lrp-muted);font-size:9px;}
.lrp-replay-badges .is-actual{border-color:rgba(134,230,255,.23);color:var(--lrp-cyan);}
.lrp-replay-badges .is-fallback{border-color:rgba(228,181,103,.24);color:#d9bb83;}
.lrp-player-panel{min-height:0;flex:1;overflow:auto;padding:20px clamp(16px,4vw,58px);}
.lrp-player-intro{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:13px;}
.lrp-player-intro h3,.lrp-timeline-events>h3{margin:0;color:var(--lrp-text);font-size:14px;}
.lrp-player-intro p{margin:0;color:var(--lrp-faint);font-size:10px;}
.lrp-transcript{display:grid;max-width:1060px;margin:0 auto;padding:0;gap:8px;list-style:none;}
.lrp-transcript>li{position:relative;}
.lrp-transcript-entry{display:grid;width:100%;grid-template-columns:52px minmax(0,1fr);gap:11px;padding:11px 13px;border:1px solid var(--lrp-border);border-radius:11px;background:var(--lrp-panel);color:inherit;text-align:left;}
button.lrp-transcript-entry{cursor:pointer;}
button.lrp-transcript-entry:hover{border-color:rgba(188,163,255,.32);background:rgba(188,163,255,.06);}
.lrp-transcript>li.is-current .lrp-transcript-entry{border-color:rgba(134,230,255,.5);box-shadow:inset 3px 0 0 var(--lrp-cyan);}
.lrp-transcript-entry>time{padding-top:2px;color:var(--lrp-faint);font-size:9px;font-variant-numeric:tabular-nums;}
.lrp-transcript-entry>span{min-width:0;}
.lrp-transcript-entry b{font-size:11px;font-weight:650;}
.lrp-transcript-entry em{margin-left:8px;color:var(--lrp-faint);font-size:8px;font-style:normal;}
.lrp-transcript-entry p{margin:5px 0 0;color:#dce0eb;font-size:12px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;}

/* 时间轴重演 */
.lrp-timeline-layout{display:grid;min-height:0;flex:1;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);}
.lrp-timeline-stage{display:flex;min-width:0;min-height:0;flex-direction:column;padding:18px;border-right:1px solid var(--lrp-border);}
.lrp-timeline-live{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:var(--lrp-faint);font-size:9px;letter-spacing:.14em;}
.lrp-timeline-live span{color:#ff9ab0;}
.lrp-timeline-live em{font-style:normal;font-variant-numeric:tabular-nums;letter-spacing:.04em;}
.lrp-timeline-visual{display:flex;min-height:0;flex:1;align-items:center;justify-content:center;flex-direction:column;padding:clamp(20px,5vw,70px);border:1px solid var(--lrp-border);border-radius:18px;background:radial-gradient(circle at 50% 28%,rgba(188,163,255,.16),transparent 40%),linear-gradient(145deg,#171d2b,#0c1019);text-align:center;}
.lrp-speaker-type{padding:4px 8px;border:1px solid rgba(134,230,255,.2);border-radius:99px;color:var(--lrp-cyan);font-size:9px;}
.lrp-timeline-visual h3{margin:11px 0 5px;font-size:clamp(21px,3vw,34px);}
.lrp-visual-state{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;}
.lrp-visual-state span{padding:3px 7px;border-radius:99px;background:rgba(255,255,255,.045);color:var(--lrp-muted);font-size:9px;}
.lrp-timeline-visual>p{max-width:760px;margin:20px 0 0;color:#f1f3f8;font-size:clamp(15px,2vw,20px);line-height:1.7;white-space:pre-wrap;}
.lrp-timeline-wait{color:var(--lrp-faint);font-size:15px;letter-spacing:.08em;}
.lrp-timeline-controls{display:flex;align-items:center;gap:7px;padding-top:12px;}
.lrp-timeline-controls button{height:32px;padding:0 10px;border-radius:8px;color:var(--lrp-muted);font-size:10px;}
.lrp-timeline-controls .lrp-play-btn{width:38px;flex:none;border-color:rgba(188,163,255,.38);background:rgba(188,163,255,.14);color:#eee8ff;font-size:13px;}
.lrp-timeline-controls label{display:flex;min-width:0;flex:1;align-items:center;gap:7px;color:var(--lrp-faint);font-size:9px;}
.lrp-timeline-controls input[type="range"]{width:100%;height:4px;margin:0;appearance:none;border-radius:99px;background:linear-gradient(90deg,var(--lrp-purple) var(--lrp-progress,0%),rgba(255,255,255,.1) var(--lrp-progress,0%));cursor:pointer;}
.lrp-timeline-controls input[type="range"]::-webkit-slider-thumb{width:13px;height:13px;appearance:none;border:2px solid var(--lrp-bg);border-radius:50%;background:var(--lrp-cyan);box-shadow:0 0 0 1px rgba(134,230,255,.5);}
.lrp-timeline-events{min-height:0;overflow:auto;padding:15px 12px;background:rgba(16,21,33,.45);}
.lrp-timeline-events>h3{margin:0 4px 10px;}
.lrp-timeline-events .lrp-transcript{gap:5px;}
.lrp-timeline-events .lrp-transcript-entry{grid-template-columns:39px minmax(0,1fr);padding:8px;gap:7px;border-radius:8px;}
.lrp-timeline-events .lrp-transcript-entry p{font-size:10px;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;}
.lrp-timeline-events .lrp-transcript-entry em{display:block;margin:2px 0 0;}

/* 本机视频 */
.lrp-video-panel{display:flex;min-height:0;flex:1;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:18px;background:radial-gradient(circle at 50% 40%,rgba(188,163,255,.08),transparent 45%);}
.lrp-video-panel video{display:block;width:min(1180px,100%);max-height:calc(100% - 36px);aspect-ratio:16/9;border:1px solid var(--lrp-border);border-radius:14px;background:#000;box-shadow:0 18px 45px rgba(0,0,0,.28);}
.lrp-video-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;color:var(--lrp-faint);font-size:9px;}

@keyframes lrpFadeIn{from{opacity:0}to{opacity:1}}
@keyframes lrpSpin{to{transform:rotate(360deg)}}
@media (max-width:980px){
  .lrp-library{grid-template-columns:180px minmax(0,1fr);}
  .lrp-record-grid{grid-template-columns:1fr;}
  .lrp-timeline-layout{grid-template-columns:minmax(0,1fr) 260px;}
  .lrp-record-actions{flex-wrap:wrap;}
}
@media (max-width:720px){
  .lrp-overlay{padding:0;align-items:stretch;}
  .lrp-dialog{width:100%;height:100%;border:0;border-radius:0;}
  .lrp-header{min-height:64px;padding:9px 11px;}
  .lrp-heading p{display:none;}
  .lrp-kicker{font-size:8px;}
  .lrp-library{display:flex;flex-direction:column;}
  .lrp-folder-nav{display:flex;min-height:auto;flex:none;gap:5px;overflow:auto;padding:8px;border-right:0;border-bottom:1px solid var(--lrp-border);}
  .lrp-folder-title{margin:0;}
  .lrp-folder-title b{display:none;}
  .lrp-folder-title button{height:32px;}
  .lrp-folder-row{display:flex;flex:none;margin:0;}
  .lrp-folder{width:auto;min-width:max-content;height:32px;padding:0 9px;}
  .lrp-folder-more{display:none;}
  .lrp-records{padding:10px;}
  .lrp-search{position:sticky;z-index:3;top:-10px;padding:8px 0;background:var(--lrp-bg);}
  .lrp-search input{min-width:0;flex:1;}
  .lrp-record-actions label{width:100%;flex-basis:100%;}
  .lrp-record-actions select{max-width:none;}
  .lrp-replay-badges{padding:7px 10px;overflow:auto;flex-wrap:nowrap;}
  .lrp-replay-badges span{flex:none;}
  .lrp-player-panel{padding:12px 9px;}
  .lrp-player-intro{align-items:start;flex-direction:column;gap:3px;}
  .lrp-transcript-entry{grid-template-columns:42px minmax(0,1fr);padding:9px;gap:7px;}
  .lrp-timeline-layout{display:flex;flex-direction:column;overflow:auto;}
  .lrp-timeline-stage{min-height:58vh;flex:none;padding:9px;border-right:0;border-bottom:1px solid var(--lrp-border);}
  .lrp-timeline-visual{min-height:340px;padding:22px 14px;}
  .lrp-timeline-events{overflow:visible;}
  .lrp-timeline-controls{gap:4px;}
  .lrp-timeline-controls button{padding:0 7px;}
  .lrp-video-panel{padding:9px;}
  .lrp-video-panel video{border-radius:9px;}
}
@media (prefers-reduced-motion:reduce){
  .lrp-overlay,.lrp-status.is-loading span{animation:none;}
  .lrp-record,.lrp-icon-btn,.lrp-quiet-btn,.lrp-folder,.lrp-record-actions button{transition:none;}
}
