/* 启昌团队内部 · CSS 主体
   token 直接复用 lanqichang.com 官网 pc.html
*/

:root{
  --d-bg:#143A5E; --d-surface:#1C4972; --d-surface2:#265A88;
  --d-border:rgba(238,244,252,.1); --d-text:#EEF4FC;
  --d-text2:rgba(238,244,252,.62); --d-muted:rgba(238,244,252,.32);
  --d-accent:#6CB4FF; --d-accent2:#A8D8FF;
  --l-bg:#F8F6F0; --l-surface:#FFFFFF; --l-surface2:#F1EDE4;
  --l-border:#E5DFD2; --l-text:#1A2433; --l-text2:#4A5566;
  --l-muted:#8A8F99; --l-accent:#143A5E; --l-accent2:#2D7CC2; --l-accentsoft:#E7F0FA;
  --warn:#C0392B;
  --serif:'Noto Serif SC','Songti SC',serif;
  --sans:'Noto Sans SC','PingFang SC',sans-serif;
  --en:'Fraunces',Georgia,serif;
  --mono:'Geist',ui-monospace,'SF Mono',Menlo,monospace;
  --sidebar:236px;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--sans);background:var(--l-bg);color:var(--l-text);min-height:100vh}
button{font-family:var(--sans)}
input,textarea{font-family:var(--sans)}
::selection{background:#CFE3F5}
.hide{display:none !important}

/* ═══ 登录 / onboarding 全屏分屏 ═══ */
.login-screen{position:fixed;inset:0;width:100vw;height:100vh;z-index:100;display:flex;background:var(--d-bg)}
.lg-brand{flex:1.2;background:
  radial-gradient(ellipse 70% 55% at 30% 0%, rgba(108,180,255,.16), transparent 60%),
  radial-gradient(ellipse 50% 40% at 90% 100%, rgba(108,180,255,.08), transparent 60%),
  var(--d-bg);
  color:var(--d-text);display:flex;flex-direction:column;justify-content:center;padding:0 7%;position:relative;overflow:hidden}
.lg-brand .logo{position:absolute;top:42px;left:7%;font-family:var(--serif);font-weight:900;font-size:19px;letter-spacing:.06em}
.lg-brand .logo span{font-family:var(--en);font-style:italic;font-weight:400;font-size:12px;color:var(--d-accent2);margin-left:10px;letter-spacing:.1em}
.lg-en{font-family:var(--en);font-style:italic;color:var(--d-accent2);font-size:17px;letter-spacing:.06em;margin-bottom:18px}
.lg-h1{font-family:var(--serif);font-weight:900;font-size:48px;line-height:1.35;margin-bottom:20px}
.lg-sub{color:var(--d-text2);font-size:15px;line-height:2.05;max-width:480px}
.lg-quote{margin-top:54px;border-left:2px solid rgba(108,180,255,.4);padding-left:18px;color:var(--d-muted);font-size:13.5px;line-height:2;font-family:var(--serif)}
.lg-form{flex:1;background:var(--l-bg);display:flex;align-items:center;justify-content:center;padding:24px}
.lg-card{width:380px;max-width:100%}
.lg-card h2{font-family:var(--serif);font-size:26px;font-weight:700;margin-bottom:8px}
.lg-card .d{color:var(--l-muted);font-size:13.5px;margin-bottom:30px;line-height:1.85}
.lg-card .d code{font-family:var(--mono);background:var(--l-surface2);padding:1px 6px;border-radius:4px;font-size:12.5px}
.lg-field{width:100%;border:1px solid var(--l-border);background:#fff;border-radius:12px;padding:15px 17px;font-size:15px;font-family:var(--mono);letter-spacing:.06em;margin-bottom:14px;outline:none}
.lg-field:focus{border-color:var(--l-accent2);box-shadow:0 0 0 3px rgba(45,124,194,.1)}
.lg-btn{width:100%;border:none;border-radius:12px;background:var(--l-accent);color:#fff;font-size:15px;font-weight:600;padding:15px;cursor:pointer}
.lg-btn:hover{background:#1d4d7c}
.lg-btn:disabled{opacity:.6;cursor:wait}
.lg-err{color:var(--warn);font-size:13px;margin-top:10px;min-height:18px}
.lg-foot{margin-top:22px;font-size:12px;color:var(--l-muted);line-height:1.85;text-align:center}

/* ═══ App 壳（侧栏 + 顶栏） ═══ */
.app{display:none}
.app.show{display:block}

.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar);background:var(--d-bg);color:var(--d-text);display:flex;flex-direction:column;z-index:50}
.sb-logo{padding:18px 22px 12px;flex-shrink:0;font-family:var(--serif);font-weight:900;font-size:17px;letter-spacing:.05em}
.sb-logo small{display:block;font-family:var(--en);font-style:italic;font-weight:400;font-size:10.5px;color:var(--d-muted);margin-top:4px;letter-spacing:.12em}
.sb-group{padding:14px 14px 4px;font-size:10.5px;color:var(--d-muted);font-family:var(--mono);letter-spacing:.15em}
.sb-item{display:flex;align-items:center;gap:11px;margin:1px 10px;padding:8px 13px;border-radius:10px;font-size:14px;color:var(--d-text2);cursor:pointer;transition:background .15s}
.sb-item:hover{background:rgba(238,244,252,.06);color:var(--d-text)}
.sb-item.on{background:rgba(108,180,255,.16);color:#fff;font-weight:500}
.sb-item .ic{width:20px;text-align:center;font-size:15px}
.sb-user{margin-top:auto;border-top:1px solid var(--d-border);padding:12px 20px;display:flex;align-items:center;gap:11px}
.sb-av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#265A88,#6CB4FF);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}
.sb-user .n{font-size:13.5px}
.sb-user .s{font-size:10.5px;color:var(--d-muted);font-family:var(--mono);margin-top:2px}

.topbar{position:fixed;left:var(--sidebar);right:0;top:0;height:62px;background:rgba(248,246,240,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--l-border);display:flex;align-items:center;gap:18px;padding:0 32px;z-index:40}
.tb-crumb{font-size:13px;color:var(--l-muted);flex-shrink:0}
.tb-crumb b{color:var(--l-text);font-weight:600}
.favbtn{margin-left:auto;display:inline-flex;align-items:center;gap:5px;background:#fff;color:#143A5E;border:1px solid #CBD5E2;padding:8px 16px;border-radius:99px;font-family:var(--sans);font-size:13px;cursor:pointer}
.favbtn:hover{background:var(--l-accentsoft)}

.main{margin-left:var(--sidebar);padding:62px 0 0}
.view{display:none;padding:30px 36px 60px;max-width:1120px}
.view.on{display:block}

/* ═══ 通用组件 ═══ */
.card{background:#fff;border:1px solid var(--l-border);border-radius:16px;padding:22px;margin-bottom:18px;box-shadow:0 1px 4px rgba(26,36,51,.03)}
.h-sec{font-family:var(--serif);font-size:17px;font-weight:700;margin:6px 0 14px;display:flex;align-items:baseline;gap:10px}
.h-sec::before{content:"";width:3px;height:16px;border-radius:2px;background:var(--l-accent2);align-self:center}
.muted{color:var(--l-muted);font-size:12.5px}
.t2{color:var(--l-text2);font-size:13.5px;line-height:1.85}
.tag{display:inline-block;font-size:11px;padding:2px 10px;border-radius:99px;background:var(--l-accentsoft);color:var(--l-accent2);font-family:var(--mono);margin-right:6px}
.btn-pri{display:inline-flex;align-items:center;gap:8px;border:none;background:var(--l-accent);color:#fff;font-size:14px;font-weight:600;border-radius:11px;padding:11px 22px;cursor:pointer}
.btn-pri:hover{background:#1d4d7c}
.btn-pri:disabled{opacity:.6;cursor:wait}
.btn-sec{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--l-border);background:#fff;color:var(--l-text);font-size:14px;font-weight:500;border-radius:11px;padding:10px 18px;cursor:pointer}
.btn-sec:hover{background:var(--l-accentsoft);border-color:#CFE3F5}
.btn-warn{border:1px solid #E8C9C5;background:#fff;color:var(--warn);font-size:13.5px;border-radius:11px;padding:10px 18px;cursor:pointer}
.btn-warn:hover{background:#FCEDEB}

.page-title{font-family:var(--serif);font-size:24px;font-weight:700;margin-bottom:18px}

/* ═══ Hero 卡（首页深蓝渐变） ═══ */
.hero-week{background:linear-gradient(130deg,#143A5E,#265A88);color:var(--d-text);border:none;position:relative;overflow:hidden;padding:28px}
.hero-week::after{content:"TRANSCRIPT TOOL";position:absolute;right:24px;top:22px;font-family:var(--en);font-style:italic;font-size:12px;color:rgba(168,216,255,.45);letter-spacing:.18em}
.hw-label{font-family:var(--mono);font-size:11.5px;color:var(--d-accent2);margin-bottom:10px;letter-spacing:.05em}
.hw-title{font-family:var(--serif);font-size:26px;font-weight:900;margin-bottom:14px}
.hw-li{font-size:13.5px;color:var(--d-text2);line-height:2}

/* ═══ 表单 ═══ */
.lbl{display:block;font-size:13px;color:var(--l-text2);font-weight:500;margin:14px 0 6px}
.inp{width:100%;border:1px solid var(--l-border);background:#fff;border-radius:10px;padding:11px 14px;font-size:14px;outline:none;font-family:var(--sans)}
.inp:focus{border-color:var(--l-accent2);box-shadow:0 0 0 3px rgba(45,124,194,.1)}
.ta{width:100%;border:1px solid var(--l-border);background:#fff;border-radius:10px;padding:12px 14px;font-size:14px;outline:none;font-family:var(--mono);line-height:1.7;resize:vertical;min-height:280px}
.ta:focus{border-color:var(--l-accent2);box-shadow:0 0 0 3px rgba(45,124,194,.1)}
.char-row{display:flex;justify-content:space-between;margin:8px 0 16px}
.inline-form{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.inline-form .inp{flex:1}

/* ═══ 文件拖入区 ═══ */
.drop-zone{display:block;border:2px dashed var(--l-border);border-radius:12px;padding:24px 18px;background:var(--l-surface2);text-align:center;transition:all .15s;cursor:pointer;position:relative;overflow:hidden}
.drop-zone:hover{border-color:var(--l-accent2);background:var(--l-accentsoft)}
.drop-zone.dragover{border-color:var(--l-accent);background:var(--l-accentsoft);transform:scale(.99)}
.file-input-hidden{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2;border:0;padding:0;margin:0;font-size:0;color:transparent}
.file-input-hidden::-webkit-file-upload-button{cursor:pointer}
.drop-file{position:relative;z-index:3}
.drop-hint{display:flex;align-items:center;justify-content:center;gap:14px}
.drop-ic{font-size:28px;color:var(--l-accent2);font-family:var(--mono)}
.drop-t1{font-size:14px;color:var(--l-text);font-weight:500}
.link-like{color:var(--l-accent2);text-decoration:underline}
.drop-t2{font-size:12px;color:var(--l-muted);margin-top:4px}
.drop-file{display:flex;align-items:center;justify-content:center;gap:14px;font-family:var(--mono);font-size:13.5px;color:var(--l-accent)}
.f-clear{background:none;border:1px solid var(--l-border);border-radius:99px;width:24px;height:24px;cursor:pointer;color:var(--l-muted);font-size:14px;line-height:1;pointer-events:auto}
.f-clear:hover{background:#FCEDEB;color:var(--warn);border-color:#E8C9C5}

/* ═══ 历史列表 ═══ */
.hist .item{display:grid;grid-template-columns:1fr auto auto auto;gap:14px;align-items:center;padding:13px 4px;border-bottom:1px solid var(--l-border);cursor:pointer}
.hist .item:hover{background:var(--l-accentsoft)}
.hist .item:last-child{border-bottom:none}
.hist .ti{font-size:14.5px;color:var(--l-text);font-weight:500}
.hist .ti .meta{display:block;color:var(--l-muted);font-size:12px;margin-top:3px;font-weight:400}
.hist .status-tag{font-family:var(--mono);font-size:11px;padding:3px 10px;border-radius:99px}
.status-tag.pending{background:#FEF3C7;color:#92660C}
.status-tag.running{background:#DBEAFE;color:#1E40AF}
.status-tag.done{background:#D1FAE5;color:#065F46}
.status-tag.failed{background:#FEE2E2;color:#991B1B}
.hist .chars{font-family:var(--mono);font-size:12px;color:var(--l-muted)}
.hist .cost{font-family:var(--mono);font-size:12px;color:var(--l-accent2);min-width:60px;text-align:right}

/* ═══ 任务详情 ═══ */
.back-link{display:inline-block;color:var(--l-accent2);font-size:13px;margin-bottom:14px;cursor:pointer;text-decoration:none}
.back-link:hover{text-decoration:underline}
.meta-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.meta-row .tag{margin:0}
.actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.output{font-family:var(--serif);font-size:15px;line-height:2;color:var(--l-text);min-height:60px;white-space:pre-wrap}
.output.md-render p{margin:0 0 1em}
.output.md-render h1,.output.md-render h2,.output.md-render h3{font-family:var(--serif);font-weight:700;margin:1.2em 0 .6em}
.output.md-render code{font-family:var(--mono);background:var(--l-surface2);padding:1px 5px;border-radius:4px;font-size:.92em}
.output.md-render blockquote{border-left:3px solid var(--l-accent2);padding-left:14px;color:var(--l-text2);margin:1em 0}

/* loading / running 进度条 */
.progress{background:var(--l-surface2);border-radius:8px;padding:18px;margin-bottom:14px}
.progress .lbl-p{font-family:var(--mono);font-size:11.5px;color:var(--l-muted);margin-bottom:8px;letter-spacing:.1em}
.progress .msg{font-size:14px;color:var(--l-text);margin-bottom:8px}
.bar{height:4px;border-radius:99px;background:#fff;overflow:hidden}
.bar > span{display:block;height:100%;background:linear-gradient(90deg,var(--l-accent2),var(--d-accent));width:30%;animation:slide 1.6s infinite}
@keyframes slide{0%{transform:translateX(-100%)}100%{transform:translateX(330%)}}

/* admin 邀请码生成结果 */
.invite-result{margin-top:14px}
.invite-card{background:var(--l-accentsoft);border:1px solid #CFE3F5;border-radius:10px;padding:14px 16px;display:flex;align-items:center;gap:14px}
.invite-card code{font-family:var(--mono);font-size:18px;color:var(--l-accent);letter-spacing:.08em;font-weight:600}
.copy-btn{margin-left:auto;background:#fff;border:1px solid var(--l-border);border-radius:8px;padding:6px 14px;font-size:12.5px;cursor:pointer}
.copy-btn:hover{background:var(--l-surface2)}

/* 用户列表 */
.user-list-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.user-list-tbl th{text-align:left;font-weight:500;color:var(--l-muted);padding:8px 6px;border-bottom:1px solid var(--l-border);font-size:11.5px;font-family:var(--mono);letter-spacing:.1em}
.user-list-tbl td{padding:10px 6px;border-bottom:1px solid var(--l-border)}
.user-list-tbl td.mono{font-family:var(--mono);font-size:12.5px}
.user-list-tbl tr:hover{background:var(--l-accentsoft)}

@media(max-width:760px){
  .lg-brand{display:none}
  .login-screen{flex-direction:column}
  .sidebar{transform:translateX(-100%)}
  .topbar{left:0}
  .main{margin-left:0}
  .view{padding:20px 16px}
}
