/* 独立下载工作区，不继承通用 tech-card 的悬停位移、霓虹边框和输入组圆角。 */
.tg-direct{padding:clamp(20px,3vw,32px);border:1px solid #303d49;border-radius:22px;background:linear-gradient(145deg,#171e26,#13181e 65%);color:#e6edf3;box-shadow:0 14px 45px rgba(0,0,0,.2);text-align:start}
.tg-direct .tg-entry-heading{display:flex;align-items:center;gap:12px;margin-block-end:20px}
.tg-direct .tg-entry-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:12px;background:#18374b;color:#7dd7f2;font-size:20px}
.tg-direct .tg-entry-heading h2{margin:0;font-family:inherit;font-size:18px;font-weight:650;line-height:1.5;letter-spacing:0}
.tg-direct .tg-entry-heading label{margin:0}
.tg-direct .tg-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
.tg-direct #videoUrl{width:100%;min-width:0;min-height:56px;padding:14px 16px;border:1px solid #3b4856;border-radius:12px;background:#10161d;color:#edf5fc;font-size:16px;line-height:1.5;box-shadow:none}
.tg-direct #videoUrl::placeholder{color:#7f91a3;opacity:1}
.tg-direct #videoUrl:focus{border-color:#5ec9e3;box-shadow:0 0 0 3px rgba(94,201,227,.12);outline:0}
.tg-direct #videoUrl[aria-invalid="true"]{border-color:#a48555}
.tg-direct #videoUrl:-webkit-autofill,.tg-direct #videoUrl:-webkit-autofill:focus{-webkit-text-fill-color:#edf5fc;-webkit-box-shadow:0 0 0 1000px #10161d inset;caret-color:#edf5fc}
.tg-direct .tg-parse-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:14px 24px;border:1px solid #48cee9;border-radius:12px;background:#32c6e5;color:#06232d;font-size:16px;font-weight:700;white-space:normal;box-shadow:none}
.tg-direct .tg-parse-button:hover,.tg-direct .tg-parse-button:focus-visible{background:#68dcf3;color:#06232d;border-color:#68dcf3}
.tg-direct .tg-parse-button:disabled{opacity:.6;cursor:wait}
/* 支持范围是轻量说明；计次规则归入账户栏，避免多层提示卡堆叠。 */
.tg-direct .tg-guidance{display:flex;align-items:flex-start;gap:9px;margin-block-start:16px;color:#a2b3c3}
.tg-direct .tg-guidance>i{flex-shrink:0;margin-block-start:5px;color:#7794ac;font-size:13px}
.tg-direct .tg-guidance-copy{min-width:0}
.tg-direct .tg-guidance p{margin:0;font-size:14px;line-height:1.75;overflow-wrap:anywhere}
.tg-direct .tg-quota-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-block:24px 0;padding:18px 20px;border:1px solid #293644;border-radius:14px;background:#111923}
.tg-direct .tg-quota-summary{min-width:0;flex:1}
.tg-direct .tg-quota-status{display:flex;align-items:baseline;gap:8px;color:#d2e4ef;font-size:14px;font-weight:600;line-height:1.7;overflow-wrap:anywhere}
.tg-direct .tg-quota-status>i{color:#7db8cf;flex-shrink:0}
.tg-direct .tg-quota-status[data-state="empty"],.tg-direct .tg-quota-status[data-state="empty"]>i{color:#ffe0a2}
.tg-direct .tg-quota-rule{margin:5px 0 0;color:#91a4b6;font-size:12px;line-height:1.75;overflow-wrap:anywhere}
.tg-direct .tg-login-button,.tg-direct .tg-extension-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;max-width:100%;padding:10px 14px;border:1px solid #42566b;border-radius:10px;background:#1d2c3b;color:#cbe6fb;font-size:14px;font-weight:600;line-height:1.5;white-space:normal;text-decoration:none;box-shadow:none;transition:background-color .15s,border-color .15s}
.tg-direct .tg-login-anchor{position:relative;display:inline-flex;flex:0 1 auto;max-width:46%}
.tg-direct .tg-login-button{max-width:100%}
.tg-direct .tg-login-button span,.tg-direct .tg-extension-button span{min-width:0;overflow-wrap:anywhere}
.tg-direct .tg-login-button i,.tg-direct .tg-extension-button i{flex-shrink:0}
.tg-direct .tg-login-arrow,.tg-direct .tg-extension-button i{font-size:12px}
.tg-direct .tg-login-button:hover,.tg-direct .tg-login-button:focus-visible,.tg-direct .tg-extension-button:hover,.tg-direct .tg-extension-button:focus-visible{background:#293f53;border-color:#709cbd;color:#edf7ff;text-decoration:none}
[dir="rtl"] .tg-direct .tg-login-arrow,[dir="rtl"] .tg-direct .tg-extension-button i{transform:scaleX(-1)}
/* 结果与账号栏有固定间隔；不支持的链接用温和的说明状态，保留明确标题与行动建议。 */
.tg-direct .tg-message{display:flex;align-items:flex-start;gap:12px;margin-block-start:24px;padding:18px 20px;border:1px solid #345061;border-radius:14px;background:#142832;color:#bdd8e6}
.tg-direct #tg-status-icon{flex-shrink:0;margin-block-start:4px;font-size:18px;color:#7fcbdf}
.tg-direct .tg-message-copy{min-width:0;flex:1}
.tg-direct .tg-message-line{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.tg-direct .tg-loading-dots{display:inline-flex;align-items:center;gap:5px;min-height:20px}
.tg-direct .tg-loading-dots i{display:block;width:5px;height:5px;border-radius:50%;background:#83def0}
.tg-direct .tg-message[data-tone="loading"]{border-color:#397286;background:linear-gradient(100deg,#163440,#142832)}
.tg-direct .tg-message[data-tone="loading"] #tg-message{font-weight:600;color:#d2f5fc}
/* 等待动画只说明请求进行中，不代表已完成多少；减少动态效果时保留静态图标与文字。 */
@keyframes tg-loading-spin{to{transform:rotate(360deg)}}
@keyframes tg-loading-dot{0%,70%,100%{transform:translateY(0);opacity:.4}35%{transform:translateY(-4px);opacity:1}}
@media(prefers-reduced-motion:no-preference){.tg-direct .tg-spin{animation:tg-loading-spin 1s linear infinite}.tg-direct .tg-loading-dots i{animation:tg-loading-dot 1.2s ease-in-out infinite}.tg-direct .tg-loading-dots i:nth-child(2){animation-delay:.15s}.tg-direct .tg-loading-dots i:nth-child(3){animation-delay:.3s}}
.tg-direct #tg-message-title{margin:0 0 7px;font-family:inherit;font-size:16px;font-weight:650;line-height:1.6;color:#f1dfbe}
.tg-direct #tg-message{margin:0;font-size:14px;font-weight:400;line-height:1.85;overflow-wrap:anywhere}
.tg-direct #tg-message bdi{font-family:ui-monospace,Consolas,monospace;color:inherit}
.tg-direct .tg-message[data-tone="caution"]{border-color:#5c4b34;background:#28241e;color:#c9bfae}
.tg-direct .tg-message[data-tone="caution"] #tg-status-icon{color:#d6b577}
.tg-direct .tg-extension-card{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px 14px;margin-block-start:20px;padding:20px;border:1px solid #303e4c;border-radius:14px;background:#19222c}
.tg-direct .tg-extension-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#234057;color:#96d2f4;font-size:18px}
.tg-direct .tg-extension-copy{min-width:0}
.tg-direct .tg-extension-copy h3{margin:0 0 8px;font-family:inherit;color:#a9e5ff;font-size:17px;font-weight:700;line-height:1.65;overflow-wrap:anywhere}
.tg-direct .tg-extension-copy p{margin:0;color:#9cafc1;font-size:13px;line-height:1.85;overflow-wrap:anywhere}
.tg-direct .tg-extension-button{grid-column:2;justify-self:start;background:transparent;font-size:13px}
.tg-direct .tg-media-result{margin-block-start:24px;padding-block-start:24px;border-block-start:1px solid #303e4c}
/* 明确的下载面板：动作标题、常见格式、全宽大按钮优先于消息来源，不像普通资讯卡片。 */
.tg-direct .tg-file-label{margin:0 0 4px;color:#92d7dc;font-size:13px;font-weight:500;line-height:1.6}
.tg-direct .tg-file-card{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;padding:26px;border:1px solid #448799;border-radius:18px;background:linear-gradient(130deg,#183b44,#142c36 58%,#17242e);box-shadow:0 8px 26px #0002}
.tg-direct .tg-file-summary{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:16px;min-width:0}
.tg-direct .tg-file-icon{display:grid;place-items:center;width:56px;height:60px;border:1px solid #498191;border-radius:14px;background:#255565;color:#a0f1f4;font-size:27px}
.tg-direct .tg-file-details{min-width:0}
.tg-direct #tg-file-title{margin:0;font-family:inherit;font-size:26px;font-weight:750;line-height:1.4;overflow-wrap:anywhere;color:#f1fbff}
.tg-direct .tg-file-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;color:#c3e2e9;font-size:14px;line-height:1.5;overflow-wrap:anywhere;max-width:220px}
.tg-direct .tg-file-meta span{max-width:100%;padding:5px 10px;border:1px solid #3b6471;border-radius:8px;background:#132c36}
.tg-direct .tg-file-source{min-width:0;padding-inline-start:14px;border-inline-start:2px solid #3c6170}
.tg-direct #videoTitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;font-family:inherit;font-size:14px;font-weight:400;line-height:1.7;color:#b5cbd5;overflow-wrap:anywhere}
.tg-direct #videoChannel{margin:4px 0 0;color:#8daab9;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.tg-direct .tg-version-hint{margin:0;color:#9ab8c4;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.tg-direct .tg-actions{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;width:100%}
.tg-direct .tg-actions button{min-height:60px;padding:15px 24px;border-radius:13px;font-size:18px;font-weight:700;line-height:1.5;white-space:normal;box-shadow:none}
.tg-direct #downloadBtn{display:inline-flex;align-items:center;justify-content:center;gap:12px;flex:1;border:1px solid #79e9ed;background:linear-gradient(105deg,#67e6d2,#35cae9);color:#062b36;box-shadow:0 5px 18px #31cfde22}
.tg-direct #downloadBtn i{flex-shrink:0;font-size:21px}
.tg-direct #downloadBtn:hover,.tg-direct #downloadBtn:focus-visible{background:linear-gradient(105deg,#8ef3e3,#70e2f4);border-color:#a2f7f7;color:#062b36}
.tg-direct #downloadBtn:disabled{opacity:.6;cursor:wait}
.tg-direct [hidden]{display:none!important}.tg-direct #progressPercent{white-space:nowrap}.tg-direct .progress{height:8px}
.tg-direct :focus-visible{outline:2px solid #67d3ed;outline-offset:4px}
@media(min-width:992px){.tg-direct .tg-extension-card{grid-template-columns:38px minmax(0,1fr) auto;align-items:center}.tg-direct .tg-extension-button{grid-column:3;max-width:210px}}
@media(max-width:575px){.tg-direct{padding:20px;border-radius:18px}.tg-direct .tg-input-row{grid-template-columns:minmax(0,1fr);gap:10px}.tg-direct .tg-parse-button{width:100%;min-height:50px}.tg-direct .tg-quota-row{flex-direction:column;align-items:stretch;gap:14px;padding:16px}.tg-direct .tg-login-anchor,.tg-direct .tg-login-button{width:100%;max-width:100%}.tg-direct .tg-message{padding:16px;gap:10px}.tg-direct .tg-extension-card{padding:16px;grid-template-columns:30px minmax(0,1fr);gap:10px}.tg-direct .tg-extension-icon{width:30px;height:30px;font-size:16px}.tg-direct .tg-extension-button{grid-column:1/-1;justify-self:stretch}.tg-direct .tg-actions button{flex:1}}
@media(max-width:767px){.tg-direct .tg-file-card{padding:18px;gap:18px}.tg-direct .tg-file-summary{grid-template-columns:44px minmax(0,1fr);gap:10px 12px}.tg-direct .tg-file-icon{width:44px;height:50px;font-size:23px}.tg-direct #tg-file-title{font-size:23px}.tg-direct .tg-file-meta{grid-column:2;justify-content:flex-start;max-width:none;font-size:12px}.tg-direct .tg-actions{flex-direction:column}.tg-direct .tg-actions button{width:100%;padding-inline:14px}.tg-direct .tg-file-label{font-size:12px}}
@media(prefers-reduced-motion:reduce){.tg-direct *{transition:none!important;animation:none!important}}
/* 对话框跟随登录按钮，桌面位于按钮左侧；较窄屏幕置于按钮上方，双层尾巴连向按钮。 */
.tg-quota-nudge{--tg-nudge-offset-y:-50%;position:absolute;z-index:20;inset-inline-end:calc(100% + 26px);top:50%;transform:translateY(var(--tg-nudge-offset-y));transform-origin:calc(100% + 24px) 50%;width:360px;max-width:calc(100vw - 48px);padding:20px;border:2px solid #dfb868;border-radius:20px 22px 18px 22px;background:#202b37;box-shadow:4px 6px 0 #0004,0 12px 32px #0005;text-align:start}
[dir="rtl"] .tg-quota-nudge{transform-origin:-24px 50%}
.tg-quota-nudge::before,.tg-quota-nudge::after{content:"";position:absolute;inset-inline-start:100%;top:50%;width:24px;height:28px;transform:translateY(-50%);clip-path:polygon(0 0,100% 50%,0 100%);background:#dfb868;pointer-events:none}
.tg-quota-nudge::after{inset-inline-start:calc(100% - 1px);width:21px;height:23px;background:#202b37}
[dir="rtl"] .tg-quota-nudge::before,[dir="rtl"] .tg-quota-nudge::after{transform:translateY(-50%) scaleX(-1)}
#tg-quota-nudge .tg-nudge-close{position:absolute;inset-inline-end:6px;top:6px;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#c5d3df;font-size:25px;line-height:1;cursor:pointer}
#tg-quota-nudge .tg-nudge-close:hover{background:#ffffff16;color:white}
#tg-quota-nudge .tg-nudge-heading{display:flex;align-items:center;gap:10px;padding-inline-end:15px}
#tg-quota-nudge .tg-nudge-icon{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:11px;background:#5e4930;color:#ffdb91;font-size:16px}
#tg-quota-nudge #tg-nudge-title{margin:0;font-family:inherit;font-size:18px;line-height:1.5;font-weight:700;color:#ffe0a2}
#tg-quota-nudge #tg-nudge-body{margin:12px 0 0;color:#c7d4df;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
#tg-quota-nudge .tg-nudge-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-block-start:16px;text-align:center}
#tg-quota-nudge .tg-nudge-actions a{flex:1;color:#b5def5;font-size:13px;font-weight:600;line-height:1.6;text-decoration:none;overflow-wrap:anywhere}
#tg-quota-nudge .tg-nudge-actions .tg-nudge-register{display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 12px;min-height:44px;border-radius:10px;background:#ffd082;color:#2b210f;font-size:15px;font-weight:700}
#tg-quota-nudge .tg-nudge-register:hover{background:#ffe0a2}
[dir="rtl"] #tg-quota-nudge .tg-nudge-register i{transform:scaleX(-1)}
@media(max-width:900px){
    .tg-quota-nudge{--tg-nudge-offset-y:0;inset-inline-end:0;top:auto;bottom:calc(100% + 26px);transform:none;transform-origin:calc(100% - 42px) calc(100% + 24px);width:340px}
    [dir="rtl"] .tg-quota-nudge{transform-origin:42px calc(100% + 24px)}
    .tg-quota-nudge::before,.tg-quota-nudge::after{inset-inline-start:auto;inset-inline-end:28px;top:100%;width:28px;height:24px;transform:none;clip-path:polygon(0 0,50% 100%,100% 0)}
    .tg-quota-nudge::after{inset-inline-end:31px;top:calc(100% - 1px);width:22px;height:21px}
    [dir="rtl"] .tg-quota-nudge::before,[dir="rtl"] .tg-quota-nudge::after{transform:none}
}
@media(max-width:575px){
    .tg-quota-nudge{width:100%;padding:16px}
    #tg-quota-nudge #tg-nudge-title{font-size:17px}
    #tg-quota-nudge .tg-nudge-actions{flex-direction:column;align-items:stretch;gap:10px}
}
.tg-quota-nudge[hidden],.tg-quota-nudge [hidden]{display:none!important}
.tg-quota-nudge :focus-visible{outline:2px solid #67d3ed;outline-offset:3px}
/* 从尾巴连接处轻弹入场，图标摆动一次、注册按钮柔光两次；有限动效不持续打扰阅读。 */
@keyframes tg-nudge-pop{
    0%{opacity:0;transform:translateY(var(--tg-nudge-offset-y)) scale(.88)}
    65%{opacity:1;transform:translateY(var(--tg-nudge-offset-y)) scale(1.025)}
    100%{opacity:1;transform:translateY(var(--tg-nudge-offset-y)) scale(1)}
}
@keyframes tg-nudge-greet{
    0%,100%{transform:rotate(0)}
    25%{transform:rotate(-12deg)}
    55%{transform:rotate(8deg)}
    80%{transform:rotate(-4deg)}
}
@keyframes tg-nudge-invite{
    0%,100%{box-shadow:0 0 0 0 rgba(255,208,130,0)}
    35%{box-shadow:0 0 0 5px rgba(255,208,130,.22)}
    75%{box-shadow:0 0 0 9px rgba(255,208,130,0)}
}
@media(prefers-reduced-motion:no-preference){
    .tg-quota-nudge:not([hidden]){animation:tg-nudge-pop .45s cubic-bezier(.2,.75,.25,1) both}
    .tg-quota-nudge:not([hidden]) .tg-nudge-icon{animation:tg-nudge-greet .75s ease-out .2s}
    .tg-quota-nudge:not([hidden]) .tg-nudge-register{animation:tg-nudge-invite 1.1s ease-out .45s 2}
}
