/* ========== Password Gate ========== */
.password-gate{position:fixed;top:44px;left:0;width:100%;height:calc(100vh - 44px);background:linear-gradient(135deg,#0a0f1c 0%,#1a1f3c 50%,#0d1117 100%);display:flex;align-items:center;justify-content:center;z-index:2000;}
.password-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:3rem 2.5rem;text-align:center;max-width:420px;width:90%;backdrop-filter:blur(20px);}
.lock-icon{width:60px;height:60px;background:linear-gradient(135deg,var(--primary),var(--accent));border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;font-size:1.4rem;color:#fff;}
.password-card h2{color:#fff;margin-bottom:.5rem;font-size:1.5rem;}
.password-card .subtitle{color:rgba(255,255,255,.5);font-size:.9rem;margin-bottom:2rem;}
.password-input-wrap{display:flex;gap:.6rem;}
.password-input-wrap input{flex:1;padding:.75rem 1rem;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;font-size:1rem;}
.password-input-wrap input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.25);}
.password-input-wrap .btn{white-space:nowrap;padding:.75rem 1.5rem;font-size:.95rem;}
.password-error{color:#f87171;font-size:.85rem;margin-top:.8rem;min-height:1.2em;}

/* ========== Hero ========== */
.bidreview-hero{padding:6rem 0 2.5rem;background:linear-gradient(135deg,#0a0f1c 0%,#1a1f3c 50%,#0d1117 100%);text-align:center;color:#fff;}
.bidreview-hero h1{font-size:2.2rem;margin-bottom:.6rem;font-weight:800;}
.bidreview-hero h1 i{margin-right:.5rem;color:var(--primary);}
.bidreview-hero p{color:rgba(255,255,255,.55);font-size:1rem;line-height:1.7;}
.beta-tag{display:inline-block;background:rgba(251,191,36,.15);color:#fbbf24;font-size:.78rem;font-weight:600;padding:.3rem .8rem;border-radius:30px;margin-bottom:1rem;}
.beta-tag i{margin-right:.3rem;}

/* ========== Toolbar ========== */
.bidreview-toolbar{padding:1rem 0;background:#0f172a;border-bottom:1px solid rgba(99,102,241,.08);}
.bidreview-toolbar__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.bidreview-toolbar__status{display:inline-flex;align-items:center;gap:.45rem;font-size:.84rem;color:rgba(255,255,255,.58);}
.bidreview-toolbar .btn{font-size:.85rem;padding:.45rem 1rem;}

/* ========== Model Bar ========== */
.model-bar{padding:.7rem 0;background:rgba(99,102,241,.04);border-bottom:1px solid rgba(99,102,241,.08);}
.model-bar-inner{max-width:800px;margin:0 auto;display:flex;align-items:center;gap:.7rem;}
.model-bar-group{display:flex;align-items:center;gap:.7rem;flex:1;min-width:0;}
.model-bar-label{font-size:.82rem;color:rgba(255,255,255,.5);font-weight:600;display:flex;align-items:center;gap:.35rem;white-space:nowrap;}
.model-bar-label i{color:var(--primary);font-size:.8rem;}
.model-select-wrap{position:relative;flex:1;max-width:420px;}
.model-select{width:100%;appearance:none;-webkit-appearance:none;background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.42rem .7rem .42rem .7rem;padding-right:2rem;font-size:.82rem;cursor:pointer;transition:all .2s;}
.model-select:hover{border-color:rgba(99,102,241,.4);background:rgba(99,102,241,.06);}
.model-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(99,102,241,.15);}
.model-select option{background:#1a1f3c;color:#fff;}
.model-select-arrow{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);font-size:.6rem;color:rgba(255,255,255,.35);pointer-events:none;}
.model-feature{max-width:800px;margin:.45rem auto 0;color:rgba(255,255,255,.45);font-size:.78rem;line-height:1.45;padding:0 .2rem;}

/* ========== Doc Section (shared) ========== */
/* Force dark background for the whole bidreview page content areas to match the dark theme components */
body {
    background-color: #0f172a; /* Dark background to match the white text styles */
    color: #f1f5f9;
}

.doc-section{padding:2.5rem 0 1.5rem;background:#0f172a;}
.doc-section-alt{background:#0b1120;}
.doc-block{max-width:800px;margin:0 auto;}

/* Upload Card */
.upload-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:1.8rem;}
.upload-card-header{display:flex;align-items:center;gap:.7rem;margin-bottom:1.2rem;}
.upload-card-header i{font-size:1.5rem;color:var(--primary);}
.upload-card-header h3{flex:1;font-size:1.15rem;color:#fff;margin:0;}
.doc-status{font-size:.75rem;padding:.25rem .7rem;border-radius:30px;font-weight:600;letter-spacing:.02em;}
.doc-status.empty{background:rgba(255,255,255,.06);color:rgba(255,255,255,.4);}
.doc-status.ready{background:rgba(16,185,129,.15);color:#10b981;}

.upload-zone{position:relative;border:2px dashed rgba(255,255,255,.12);border-radius:12px;padding:2.5rem 1rem;text-align:center;cursor:pointer;transition:all .25s;}
.upload-zone:hover{border-color:var(--primary);background:rgba(99,102,241,.05);}
.upload-zone input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;}
.upload-zone>i{font-size:2.2rem;color:var(--primary);margin-bottom:.6rem;display:block;}
.upload-zone p{color:rgba(255,255,255,.6);margin:.3rem 0;}
.upload-zone .hint{font-size:.8rem;color:rgba(255,255,255,.35);}

.file-info{display:flex;align-items:center;gap:.6rem;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.2);border-radius:10px;padding:.75rem 1rem;margin-top:1rem;color:#10b981;}
.file-info .name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.file-info .size{font-size:.82rem;color:rgba(16,185,129,.7);}
.remove-file{background:none;border:none;color:#f87171;cursor:pointer;font-size:1rem;padding:.2rem .5rem;}

.text-toggle{text-align:center;margin-top:.8rem;}
.text-toggle button{background:none;border:none;color:rgba(255,255,255,.4);font-size:.85rem;cursor:pointer;}
.text-toggle button:hover{color:var(--primary);}
.doc-textarea{width:100%;min-height:160px;margin-top:.5rem;padding:.8rem 1rem;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.03);color:#fff;font-size:.9rem;line-height:1.6;resize:vertical;}
.doc-textarea:focus{border-color:var(--primary);outline:none;}
.doc-textarea.hidden{display:none;}
.char-count{text-align:right;font-size:.78rem;color:rgba(255,255,255,.3);margin-top:.3rem;min-height:1rem;}

/* Action bar below each upload card */
.doc-action-bar{display:flex;align-items:center;gap:1rem;margin-top:1.2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.06);}
.doc-action-bar .btn{padding:.6rem 1.5rem;font-size:.92rem;}
.doc-action-bar .btn:disabled{opacity:.4;cursor:not-allowed;}
.doc-action-tip{font-size:.82rem;color:rgba(255,255,255,.35);}

/* Per-doc pipeline results */
.doc-pipeline{margin-top:1.5rem;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:1.5rem;}
.doc-pipeline-header{display:flex;align-items:center;gap:.7rem;margin-bottom:1rem;}
.doc-pipeline-header h4{flex:1;color:#fff;font-size:1rem;margin:0;}
.doc-pipeline-header h4 i{margin-right:.4rem;color:var(--primary);}
.pipeline-status{font-size:.78rem;padding:.2rem .6rem;border-radius:20px;background:rgba(99,102,241,.12);color:var(--primary);}

/* ========== Compare Section ========== */
.compare-section{padding:3rem 0 2rem;background:linear-gradient(180deg,rgba(99,102,241,.04),transparent);border-top:1px solid rgba(99,102,241,.12);}
.compare-header{text-align:center;margin-bottom:1.5rem;}
.compare-header h2{font-size:1.6rem;color:#fff;margin-bottom:.4rem;}
.compare-header h2 i{margin-right:.5rem;color:var(--primary);}
.compare-header p{color:rgba(255,255,255,.45);font-size:.92rem;}

.compare-readiness{display:flex;justify-content:center;gap:2rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.readiness-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:rgba(255,255,255,.6);}
.readiness-item i{font-size:.55rem;}
.readiness-tag{font-size:.72rem;padding:.18rem .55rem;border-radius:20px;font-weight:600;}
.readiness-tag.pending{background:rgba(255,255,255,.06);color:rgba(255,255,255,.4);}
.readiness-tag.done{background:rgba(16,185,129,.15);color:#10b981;}

.compare-action-bar{text-align:center;margin-bottom:2rem;}
.btn-lg{padding:.8rem 2.5rem!important;font-size:1.05rem!important;}

/* Pipeline steps */
.compare-pipeline{max-width:800px;margin:0 auto;}
.overall-progress{margin-bottom:1.5rem;}
.progress-bar-wrap{height:6px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden;}
.progress-bar-fill{height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:3px;transition:width .4s;}
.progress-text{display:flex;justify-content:space-between;margin-top:.4rem;font-size:.8rem;color:rgba(255,255,255,.45);}

.pipeline-steps{display:flex;flex-direction:column;gap:1rem;}

/* Pipeline Step Card */
.step-card{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden;transition:border-color .3s;}
.step-card.active{border-color:rgba(99,102,241,.3);}
.step-card.done{border-color:rgba(16,185,129,.25);}
.step-card.error{border-color:rgba(248,113,113,.3);}

.step-header{display:flex;align-items:center;gap:.7rem;padding:.9rem 1.2rem;cursor:pointer;user-select:none;}
.step-number{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;background:rgba(255,255,255,.06);color:rgba(255,255,255,.4);flex-shrink:0;}
.step-card.active .step-number{background:rgba(99,102,241,.2);color:var(--primary);animation:pulse 1.4s infinite;}
.step-card.done .step-number{background:rgba(16,185,129,.15);color:#10b981;}
.step-card.error .step-number{background:rgba(248,113,113,.15);color:#f87171;}

@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(99,102,241,.3);}50%{box-shadow:0 0 0 6px rgba(99,102,241,0);}}

.step-title{flex:1;font-size:.9rem;color:rgba(255,255,255,.6);}
.step-card.active .step-title{color:#fff;font-weight:600;}
.step-card.done .step-title{color:#10b981;}
.step-card.error .step-title{color:#f87171;}

.step-hint{font-size:.72rem;color:rgba(255,255,255,.25);margin-left:auto;}
.step-expand-icon{color:rgba(255,255,255,.25);font-size:.75rem;transition:transform .25s;margin-left:.3rem;}
.step-card.expanded .step-expand-icon{transform:rotate(180deg);}

.step-body{display:none;padding:0 1.2rem 1.2rem;}
.step-card.expanded .step-body{display:block;}

.step-content{font-size:.88rem;color:rgba(255,255,255,.65);line-height:1.7;}
.step-content strong{color:#fff;}
.step-content ul{padding-left:1.2rem;margin:.4rem 0;}
.step-content table{width:100%;border-collapse:collapse;margin:.6rem 0;font-size:.82rem;}
.step-content table th{background:rgba(99,102,241,.1);padding:.5rem .7rem;text-align:left;font-weight:600;color:var(--primary);border:1px solid rgba(255,255,255,.08);}
.step-content table td{padding:.5rem .7rem;border:1px solid rgba(255,255,255,.06);}

/* Report */
.report-section{padding:2rem 0 3rem;display:none;}
.report-card{background:rgba(255,255,255,.03);border:1px solid rgba(99,102,241,.15);border-radius:16px;padding:2.5rem;max-width:900px;margin:0 auto;font-size:.92rem;color:rgba(255,255,255,.7);line-height:1.8;}
.report-card h2{color:var(--primary);margin:1.2rem 0 .6rem;font-size:1.15rem;border-bottom:1px solid rgba(99,102,241,.15);padding-bottom:.4rem;}
.report-card h3{color:#fff;font-size:1rem;margin:1rem 0 .3rem;}
.report-card table{width:100%;border-collapse:collapse;margin:.8rem 0;font-size:.85rem;}
.report-card table th{background:rgba(99,102,241,.1);padding:.55rem .7rem;text-align:left;font-weight:600;color:var(--primary);border:1px solid rgba(255,255,255,.08);}
.report-card table td{padding:.55rem .7rem;border:1px solid rgba(255,255,255,.06);}
.report-actions{display:flex;gap:.8rem;justify-content:center;margin-top:1.5rem;max-width:900px;margin-left:auto;margin-right:auto;}

/* ========== Spinner ========== */
.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.15);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin-right:.4rem;vertical-align:middle;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ========== Responsive ========== */
@media(max-width:768px){
    .password-gate{top:44px;height:calc(100vh - 44px);}
    .bidreview-toolbar__inner{flex-direction:column;align-items:flex-start;}
    .bidreview-hero h1{font-size:1.5rem;}
    .upload-card{padding:1.2rem;}
    .model-bar-inner{flex-wrap:wrap;}
    .model-bar-group{flex-basis:100%;flex-wrap:wrap;}
    .model-select-wrap{max-width:100%;}
    .compare-readiness{flex-direction:column;align-items:center;gap:.8rem;}
    .report-card{padding:1.5rem;}
}

/* ========== Mode Tabs (评标 / 写标书) ========== */
.mode-tabs-wrap{background:#0f172a;padding:1.4rem 0 .2rem;}
.mode-tabs{display:flex;gap:.5rem;max-width:520px;margin:0 auto;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:.35rem;}
.mode-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1rem;border:none;background:transparent;color:rgba(255,255,255,.6);font-size:.95rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .2s;font-family:inherit;}
.mode-tab i{font-size:.9rem;}
.mode-tab:hover{color:#fff;background:rgba(99,102,241,.1);}
.mode-tab.is-active{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 4px 14px rgba(99,102,241,.35);}
.mode-panel[hidden]{display:none;}

/* ========== AI 写标书 ========== */
.bidwrite-section{padding-top:2rem;}
.bidwrite-form{max-width:900px;margin:0 auto;}
.bidwrite-tip{color:rgba(255,255,255,.5);font-size:.85rem;line-height:1.6;margin:-.4rem 0 1.2rem;}
.bidwrite-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.4rem;margin-bottom:1.1rem;}
.bw-field{margin-bottom:1.1rem;}
.bw-field label{display:block;font-size:.85rem;font-weight:600;color:rgba(255,255,255,.78);margin-bottom:.45rem;}
.bw-field label .req{color:#f87171;margin-left:.15rem;}
.bw-field input[type=text]{width:100%;padding:.7rem .9rem;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.04);color:#fff;font-size:.9rem;transition:all .2s;}
.bw-field input[type=text]:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(99,102,241,.18);}
.bw-field input[type=text]::placeholder,.doc-textarea::placeholder{color:rgba(255,255,255,.32);}
.bw-field .model-select{padding-top:.7rem;padding-bottom:.7rem;font-size:.9rem;}
.bidwrite-outline-box{max-width:900px;margin:1.4rem auto 0;}
@media (max-width:640px){.bidwrite-grid{grid-template-columns:1fr;}}

/* ========== 标书查重 ========== */
.bc-file-list{margin:1rem 0 .4rem;display:flex;flex-direction:column;gap:.5rem;}
.bc-file-item{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;font-size:.88rem;color:rgba(255,255,255,.8);}
.bc-file-item>i{color:var(--primary);}
.bc-file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bc-file-chars{font-size:.78rem;color:rgba(255,255,255,.4);white-space:nowrap;}
.bc-file-remove{background:none;border:none;color:rgba(255,255,255,.4);cursor:pointer;font-size:.9rem;padding:.2rem .4rem;border-radius:6px;}
.bc-file-remove:hover{color:#f87171;background:rgba(248,113,113,.1);}
.bc-matrix-table{width:100%;border-collapse:collapse;margin:.4rem 0 1rem;font-size:.85rem;}
.bc-matrix-table th,.bc-matrix-table td{border:1px solid rgba(255,255,255,.08);padding:.5rem .6rem;text-align:center;color:rgba(255,255,255,.78);}
.bc-matrix-table thead th{background:rgba(99,102,241,.1);color:var(--primary);}
.bc-matrix-table .bc-row-head{text-align:left;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;background:rgba(99,102,241,.06);color:rgba(255,255,255,.7);}
.bc-matrix-table .bc-self{color:rgba(255,255,255,.25);}
.bc-high{background:rgba(248,113,113,.18);color:#fca5a5!important;font-weight:700;}
.bc-mid{background:rgba(251,191,36,.16);color:#fcd34d!important;font-weight:600;}
.bc-low{color:rgba(255,255,255,.55)!important;}
.bc-legend{display:inline-block;margin-left:.6rem;padding:.1rem .5rem;border-radius:20px;font-size:.74rem;}
.bc-ok{display:flex;align-items:center;gap:.5rem;padding:1rem;background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.2);border-radius:10px;color:#86efac;font-size:.9rem;}
.bc-pair{margin:1rem 0;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;}
.bc-pair-head{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;font-size:.9rem;font-weight:600;background:rgba(255,255,255,.03);}
.bc-pair-head.bc-high{background:rgba(248,113,113,.12);}
.bc-pair-head.bc-mid{background:rgba(251,191,36,.1);}
.bc-pair-sim{margin-left:auto;font-size:.82rem;}
.bc-seg-list{padding:.6rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem;}
.bc-seg{padding:.5rem .7rem;background:rgba(248,113,113,.08);border-left:3px solid rgba(248,113,113,.5);border-radius:6px;font-size:.84rem;line-height:1.6;color:rgba(255,255,255,.75);word-break:break-all;}
.bc-seg-none{background:rgba(255,255,255,.03);border-left-color:rgba(255,255,255,.2);color:rgba(255,255,255,.45);}

/* ========== AI 配图 ========== */
.bi-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:.4rem;}
.bi-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;}
.bi-card img{width:100%;height:auto;display:block;background:#fff;}
.bi-card-actions{display:flex;gap:.5rem;padding:.6rem;}
.bi-card-actions .btn{flex:1;font-size:.8rem;padding:.4rem .5rem;}
/* 标书正文里的配图 */
.bw-figure{margin:1rem 0;text-align:center;}
.bw-figure img{max-width:100%;height:auto;border-radius:8px;background:#fff;}
.bw-figure figcaption{margin-top:.4rem;font-size:.82rem;color:rgba(255,255,255,.5);}

@media print{
    .site-nav,.site-mobile-nav,.password-gate,.bidreview-toolbar,.bidreview-hero,.mode-tabs-wrap,.doc-section,.compare-section .compare-header,.compare-section .compare-readiness,.compare-section .compare-action-bar,.compare-pipeline,.report-actions,.footer{display:none!important;}
    .report-section{display:block!important;padding:0;}
    .report-card{border:none;padding:0;background:#fff;color:#000;}
    .report-card h2{color:#333;border-bottom-color:#ccc;}
    .report-card h3{color:#222;}
    .report-card table th{background:#eee;color:#333;border-color:#ccc;}
    .report-card table td{border-color:#ddd;color:#000;}
}
