/* Extracted from bid.html on 2026-06-13. Original style blocks preserved in order. */

/* style block 1 attrs: */
*{margin:0;padding:0;box-sizing:border-box;font-family:"Microsoft YaHei","PingFang SC",sans-serif;}
body{background:#0f172a;color:#e2e8f0;height:100vh;overflow:hidden;}

/* 主布局 */
.app{display:flex;height:100vh;flex-direction:column;}

/* 顶部栏 */
.topbar{height:52px;background:#1e293b;border-bottom:1px solid #334155;display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0;}
.topbar .left{display:flex;align-items:center;gap:12px;}
.topbar .logo{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px;}
.topbar .logo a{color:#e2e8f0;text-decoration:none;}
.topbar .project-name{font-size:14px;color:#94a3b8;}
.topbar .actions{display:flex;gap:8px;align-items:center;}

/* 模型选择器 */
.model-select{display:flex;align-items:center;gap:6px;}
.model-select label{font-size:12px;color:#94a3b8;}
.model-select select{padding:5px 10px;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:12px;outline:none;cursor:pointer;}
.model-select select:focus{border-color:#3b82f6;}

/* 按钮 */
.btn{padding:6px 14px;border:none;border-radius:6px;cursor:pointer;font-size:12px;transition:all 0.2s;display:inline-flex;align-items:center;gap:4px;}
.btn-primary{background:#3b82f6;color:#fff;}
.btn-primary:hover{background:#2563eb;}
.btn-secondary{background:#334155;color:#e2e8f0;}
.btn-secondary:hover{background:#475569;}
.btn-success{background:#22c55e;color:#fff;}
.btn-success:hover{background:#16a34a;}
.btn-danger{background:#ef4444;color:#fff;}
.btn-danger:hover{background:#dc2626;}
.btn:disabled{opacity:0.5;cursor:not-allowed;}

/* 主体 */
.main{display:flex;flex:1;overflow:hidden;}

/* 左侧项目栏 */
.sidebar{width:260px;background:#1e293b;border-right:1px solid #334155;display:flex;flex-direction:column;flex-shrink:0;}
.sidebar-header{padding:14px;border-bottom:1px solid #334155;}
.sidebar-header h3{font-size:14px;margin-bottom:10px;}
.sidebar-header .btn{width:100%;justify-content:center;}
.project-list{flex:1;overflow-y:auto;padding:8px;}
.project-item{padding:10px 12px;border-radius:8px;cursor:pointer;margin-bottom:4px;border:1px solid transparent;transition:all 0.2s;}
.project-item:hover{background:#334155;}
.project-item.active{background:#3b82f6;border-color:#3b82f6;}
.project-item .name{font-size:13px;font-weight:500;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.project-item .meta{font-size:11px;color:#94a3b8;}
.project-item .badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;margin-top:4px;}
.badge-green{background:#22c55e;color:#fff;}
.badge-yellow{background:#f59e0b;color:#fff;}
.badge-blue{background:#3b82f6;color:#fff;}

/* 工作区 */
.workspace{flex:1;display:flex;flex-direction:column;overflow:hidden;}

/* 步骤导航 */
.steps{display:flex;background:#1e293b;border-bottom:1px solid #334155;overflow-x:auto;}
.step{padding:12px 16px;cursor:pointer;font-size:13px;color:#94a3b8;border-bottom:2px solid transparent;white-space:nowrap;display:flex;align-items:center;gap:6px;transition:all 0.2s;}
.step:hover{color:#e2e8f0;}
.step.active{color:#3b82f6;border-bottom-color:#3b82f6;font-weight:500;}
.step.done{color:#22c55e;}
.step .num{width:20px;height:20px;border-radius:50%;background:#334155;display:flex;align-items:center;justify-content:center;font-size:11px;}
.step.active .num{background:#3b82f6;color:#fff;}
.step.done .num{background:#22c55e;color:#fff;}

/* 内容区 */
.content{flex:1;overflow-y:auto;padding:20px;}
.panel{display:none;}
.panel.active{display:block;animation:fadeIn 0.3s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* 卡片 */
.card{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:16px;margin-bottom:16px;}
.card h3{font-size:14px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:6px;}
.card p{font-size:13px;color:#94a3b8;line-height:1.6;}

/* 上传区 */
.upload-area{border:2px dashed #334155;border-radius:10px;padding:40px;text-align:center;cursor:pointer;transition:all 0.2s;}
.upload-area:hover{border-color:#3b82f6;background:rgba(59,130,246,0.03);}
.upload-area .icon{font-size:40px;margin-bottom:8px;}
.upload-area .text{font-size:14px;}
.upload-area .hint{font-size:12px;color:#64748b;margin-top:4px;}

/* 表格 */
.table{width:100%;border-collapse:collapse;font-size:13px;}
.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid #334155;}
.table th{color:#94a3b8;font-size:12px;font-weight:500;}
.table tr:hover{background:rgba(255,255,255,0.02);}

/* 标签 */
.tag{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;}
.tag-green{background:rgba(34,197,94,0.15);color:#22c55e;}
.tag-red{background:rgba(239,68,68,0.15);color:#ef4444;}
.tag-blue{background:rgba(59,130,246,0.15);color:#3b82f6;}
.tag-yellow{background:rgba(245,158,11,0.15);color:#f59e0b;}

/* 消息 */
.msg{padding:10px 14px;border-radius:8px;margin-bottom:8px;font-size:13px;}
.msg-info{background:rgba(59,130,246,0.1);border-left:3px solid #3b82f6;}
.msg-warn{background:rgba(245,158,11,0.1);border-left:3px solid #f59e0b;}
.msg-error{background:rgba(239,68,68,0.1);border-left:3px solid #ef4444;}
.msg-success{background:rgba(34,197,94,0.1);border-left:3px solid #22c55e;}

/* 编辑器 */
.editor{width:100%;min-height:280px;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:12px;color:#e2e8f0;font-size:14px;line-height:1.7;resize:vertical;}
.editor:focus{outline:none;border-color:#3b82f6;}

/* 分数展示 */
.scores{display:flex;gap:16px;margin-bottom:16px;}
.score-box{text-align:center;padding:14px;background:#1e293b;border:1px solid #334155;border-radius:8px;flex:1;}
.score-box .value{font-size:26px;font-weight:700;color:#3b82f6;}
.score-box .label{font-size:12px;color:#94a3b8;margin-top:4px;}

/* 进度 */
.loading{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:13px;}
.loading .spin{width:16px;height:16px;border:2px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* 空状态 */
.empty{text-align:center;padding:60px 20px;color:#64748b;}
.empty .icon{font-size:48px;margin-bottom:12px;}
.empty .title{font-size:16px;color:#94a3b8;margin-bottom:8px;}

/* 模态框 */
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.6);display:none;align-items:center;justify-content:center;z-index:10000;}
.modal-overlay.show{display:flex;}
.modal{background:#1e293b;border:1px solid #334155;border-radius:12px;width:480px;max-width:90%;max-height:80vh;overflow:hidden;}
.modal-head{padding:16px;border-bottom:1px solid #334155;font-size:15px;font-weight:600;}
.modal-body{padding:16px;overflow-y:auto;max-height:60vh;}
.modal-foot{padding:12px 16px;border-top:1px solid #334155;display:flex;justify-content:flex-end;gap:8px;}

/* 输入框 */
.input{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:13px;}
.input:focus{outline:none;border-color:#3b82f6;}

/* 隐藏文件输入 */
input[type="file"]{display:none;}

/* 响应式 */
@media(max-width:768px){
    .sidebar{width:0;display:none;}
    .sidebar.open{width:260px;display:flex;position:fixed;z-index:9999;height:100vh;}
    .step{padding:10px 8px;font-size:12px;}
}

/* progress & stream */
.progress-bar{display:flex;gap:4px;margin:12px 0}
.progress-step{flex:1;height:6px;border-radius:3px;background:#e0e0e0;transition:background .3s}
.progress-step.done{background:#27ae60}
.progress-step.active{background:#3498db;animation:pls 1.5s infinite}
@keyframes pls{0%,100%{opacity:1}50%{opacity:.5}}

/* 2026-06-12 AI页面可读性统一优化 */
body{font-size:14px}
button,input,select,textarea{font:inherit}
.card,.panel,.content-card,.workspace-card{border-radius:14px}
table{font-size:14px}
th{font-weight:900}
td{line-height:1.55}
.btn,button{transition:.18s}
.btn:hover,button:hover{filter:brightness(1.06)}


/* 2026-06-12 AI标书流程视觉增强 */
.steps,.bid-steps{background:linear-gradient(180deg,rgba(30,41,59,.96),rgba(15,23,42,.96));border:1px solid #334155;border-radius:18px;padding:14px;box-shadow:0 14px 34px rgba(0,0,0,.18)}
.step,.progress-step,.bid-step{border-radius:14px!important;transition:.2s!important}
.step.active,.progress-step.active,.bid-step.active{background:linear-gradient(135deg,#1f5aa6,#00a3ff)!important;color:#fff!important;box-shadow:0 10px 28px rgba(0,163,255,.22)!important}
.card,.bid-card,.panel,.bid-panel{border-radius:18px!important;border:1px solid rgba(100,116,139,.35)!important;box-shadow:0 14px 34px rgba(0,0,0,.16)!important}
.upload-area,.bid-upload-area{border-radius:18px!important;border:1.5px dashed #38bdf8!important;background:linear-gradient(135deg,rgba(14,165,233,.10),rgba(30,41,59,.58))!important;transition:.22s!important}
.upload-area:hover,.bid-upload-area:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(14,165,233,.18)!important}
.office-doc-card{border-radius:12px!important;box-shadow:0 8px 20px rgba(15,23,42,.08)!important}
.topbar,.bid-topbar{box-shadow:0 8px 28px rgba(0,0,0,.18)}

/* 2026-06-14 引导式流程提示卡片 */
.guide-card{background:linear-gradient(135deg,rgba(59,130,246,.12),rgba(14,165,233,.08));border:1px solid rgba(59,130,246,.3);border-radius:12px;padding:14px 16px;margin-bottom:16px;display:flex;align-items:flex-start;gap:12px;animation:fadeIn 0.4s ease}
.guide-card .guide-icon{font-size:22px;flex-shrink:0}
.guide-card .guide-content{flex:1}
.guide-card .guide-title{font-size:14px;font-weight:600;color:#60a5fa;margin-bottom:4px}
.guide-card .guide-text{font-size:13px;color:#94a3b8;line-height:1.6}
.guide-card .guide-close{margin-left:auto;background:none;border:none;color:#64748b;cursor:pointer;font-size:16px;padding:0 4px;flex-shrink:0}
.guide-card .guide-close:hover{color:#e2e8f0}
.guide-card.guide-warn{background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(234,179,8,.08));border-color:rgba(245,158,11,.3)}
.guide-card.guide-warn .guide-title{color:#f59e0b}
.guide-card.guide-success{background:linear-gradient(135deg,rgba(34,197,94,.12),rgba(74,222,128,.08));border-color:rgba(34,197,94,.3)}
.guide-card.guide-success .guide-title{color:#22c55e}
.guide-card.guide-danger{background:linear-gradient(135deg,rgba(239,68,68,.12),rgba(248,113,113,.08));border-color:rgba(239,68,68,.3)}
.guide-card.guide-danger .guide-title{color:#ef4444}
