/* ===== 招投标管理子模块 · 液态玻璃深色皮肤 =====
   设计来源：瑞鹏程数科业务管控平台 src/styles/glass.scss 的 html.skin-glass.dark
   说明：保留全部类名与布局，仅替换皮肤（配色 / 圆角 / 玻璃材质 / 动效） */
:root{
  --bid-blue:#0a84ff; --bid-blue-d:#7cc0ff; --bid-gray:#98989f; --bid-line:rgba(255,255,255,.12);
  --bid-bg:transparent; --bid-card:rgba(36,38,52,.52); --bid-soft:rgba(255,255,255,.06); --bid-text:#d1d1d6;
  --bid-green:#6fe08f; --bid-orange:#ffc078; --bid-red:#ff6961; --bid-blue-l:rgba(10,132,255,.18);
  /* 玻璃材质 */
  --bid-blur:blur(28px) saturate(180%);
  --bid-ease:cubic-bezier(.34,1.56,.64,1);
  --bid-hi:inset 0 1px 0 rgba(255,255,255,.12);
  --bid-shadow:0 8px 32px rgba(0,0,0,.28);
}
.bid-wrap{background:var(--bid-bg);min-height:calc(100vh - 0px);padding:18px 22px 40px;color:var(--bid-text);font-size:13px}
.bid-h1{font-size:18px;font-weight:700;color:#f5f5f7;margin:0 0 4px;display:flex;align-items:center;gap:8px;text-shadow:none}
.bid-sub{color:var(--bid-gray);font-size:12px;margin-bottom:14px}
.bid-subnav{display:flex;flex-wrap:wrap;gap:6px;background:var(--bid-card);backdrop-filter:var(--bid-blur);-webkit-backdrop-filter:var(--bid-blur);border:1px solid var(--bid-line);border-radius:16px;padding:8px;margin-bottom:16px;box-shadow:var(--bid-shadow),var(--bid-hi)}
.bid-subnav button{border:1px solid transparent;background:transparent;color:var(--bid-gray);padding:7px 14px;border-radius:12px;cursor:pointer;font-size:13px;font-weight:600;transition:background .35s var(--bid-ease),color .2s ease,transform .35s var(--bid-ease)}
.bid-subnav button:hover{background:rgba(255,255,255,.08);color:var(--bid-blue)}
.bid-subnav button.on{background:var(--bid-blue);color:#fff;border-color:var(--bid-blue);box-shadow:0 4px 14px rgba(10,132,255,.32),inset 0 1px 0 rgba(255,255,255,.28)}
.bid-card{background:var(--bid-card);backdrop-filter:var(--bid-blur);-webkit-backdrop-filter:var(--bid-blur);border:1px solid var(--bid-line);border-radius:22px;padding:16px;margin-bottom:16px;box-shadow:var(--bid-shadow),var(--bid-hi)}
.bid-card h3{margin:0 0 12px;font-size:14px;color:#f5f5f7;font-weight:700;display:flex;align-items:center;gap:6px}
.bid-card h3 .act{margin-left:auto;font-weight:500}
.bid-dash{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:16px}
.bid-stat{background:linear-gradient(135deg,#0a84ff,#0060df);color:#fff;border-radius:18px;padding:16px 14px;box-shadow:0 6px 22px rgba(10,132,255,.3),inset 0 1px 0 rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.14)}
.bid-stat .lbl{font-size:12px;opacity:.9}
.bid-stat .num{font-size:26px;font-weight:800;margin-top:6px;line-height:1}
.bid-stat .ext{font-size:11px;opacity:.85;margin-top:4px}
.bid-stat.g{background:linear-gradient(135deg,#30d158,#1f9e42);box-shadow:0 6px 22px rgba(48,209,88,.26),inset 0 1px 0 rgba(255,255,255,.28)}
.bid-stat.o{background:linear-gradient(135deg,#ff9f0a,#c97600);box-shadow:0 6px 22px rgba(255,159,10,.26),inset 0 1px 0 rgba(255,255,255,.28)}
.bid-charts{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}
.bid-todo{list-style:none;margin:0;padding:0}
.bid-todo li{display:flex;align-items:center;gap:10px;padding:9px 6px;border-bottom:1px dashed rgba(255,255,255,.1);cursor:pointer;border-radius:10px;transition:background .3s var(--bid-ease)}
.bid-todo li:last-child{border-bottom:none}
.bid-todo li:hover{background:rgba(10,132,255,.08)}
.bid-todo .dot{width:8px;height:8px;border-radius:50%;background:var(--bid-blue);flex:none}
.bid-todo .t{font-weight:600;color:#f5f5f7}
.bid-todo .s{color:var(--bid-gray);font-size:12px}
.bid-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.bid-toolbar input,.bid-toolbar select{height:32px;border:1px solid var(--bid-line);border-radius:12px;padding:0 10px;font-size:13px;background:rgba(255,255,255,.06);color:var(--bid-text);outline:none;transition:border-color .25s ease,box-shadow .3s var(--bid-ease)}
.bid-toolbar input:focus,.bid-toolbar select:focus{border-color:var(--bid-blue);box-shadow:0 0 0 4px rgba(10,132,255,.14)}
.bid-toolbar .sp{margin-left:auto}
.bid-table{width:100%;border-collapse:collapse;font-size:13px}
.bid-table th,.bid-table td{border-bottom:1px solid rgba(255,255,255,.08);padding:9px 10px;text-align:left}
.bid-table th{background:rgba(255,255,255,.05);color:var(--bid-gray);font-weight:600;white-space:nowrap}
.bid-table tbody tr:hover{background:rgba(10,132,255,.08)}
.bid-table .row-act button{margin-right:6px}
.bid-btn{border:1px solid var(--bid-blue);background:var(--bid-blue);color:#fff;padding:7px 14px;border-radius:12px;cursor:pointer;font-size:13px;font-weight:600;box-shadow:0 4px 14px rgba(10,132,255,.28),inset 0 1px 0 rgba(255,255,255,.26);transition:transform .35s var(--bid-ease),background .25s ease}
.bid-btn:hover{background:#2f95ff}
.bid-btn:active{transform:scale(.94)}
.bid-btn.ghost{background:rgba(255,255,255,.06);color:var(--bid-blue);box-shadow:none}
.bid-btn.ghost:hover{background:rgba(255,255,255,.12)}
.bid-btn.sm{padding:4px 10px;font-size:12px;border-radius:10px}
.bid-btn.danger{border-color:rgba(255,69,58,.45);background:rgba(255,69,58,.9);box-shadow:0 4px 14px rgba(255,69,58,.24)}
.bid-btn.green{background:rgba(48,209,88,.9);border-color:rgba(48,209,88,.5);box-shadow:0 4px 14px rgba(48,209,88,.22)}
.bid-tag{display:inline-block;padding:2px 9px;border-radius:8px;font-size:12px;font-weight:600;line-height:1.6}
.bid-tag.blue{background:var(--bid-blue-l);color:var(--bid-blue-d)}
.bid-tag.green{background:rgba(48,209,88,.16);color:var(--bid-green)}
.bid-tag.orange{background:rgba(255,159,10,.16);color:var(--bid-orange)}
.bid-tag.red{background:rgba(255,69,58,.16);color:var(--bid-red)}
.bid-tag.gray{background:rgba(255,255,255,.08);color:var(--bid-gray)}
.bid-pager{display:flex;gap:6px;align-items:center;justify-content:flex-end;margin-top:12px;font-size:13px;color:var(--bid-gray)}
.bid-pager button{border:1px solid var(--bid-line);background:rgba(255,255,255,.06);color:var(--bid-text);border-radius:12px;padding:5px 11px;cursor:pointer;transition:background .25s ease}
.bid-pager button:hover:not(:disabled){background:rgba(255,255,255,.12)}
.bid-pager button:disabled{opacity:.5;cursor:not-allowed}
/* 弹窗 */
.bid-mask{position:fixed;inset:0;background:rgba(11,16,32,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:center;padding:50px 16px;z-index:9999;overflow:auto}
.bid-modal{background:linear-gradient(180deg,rgba(46,48,64,.88),rgba(30,32,44,.92));backdrop-filter:var(--bid-blur);-webkit-backdrop-filter:var(--bid-blur);border:1px solid rgba(255,255,255,.16);border-radius:26px;width:680px;max-width:96vw;box-shadow:0 24px 70px rgba(0,0,0,.55),var(--bid-hi);animation:bidpop .18s ease}
@keyframes bidpop{from{transform:translateY(-12px) scale(.97);opacity:.6}to{transform:none;opacity:1}}
.bid-modal .mh{display:flex;align-items:center;padding:14px 18px;border-bottom:1px solid var(--bid-line)}
.bid-modal .mh b{font-size:15px;color:#f5f5f7}
.bid-modal .mh .x{margin-left:auto;cursor:pointer;color:var(--bid-gray);font-size:20px;line-height:1}
.bid-modal .mh .x:hover{color:#f5f5f7}
.bid-modal .mb{padding:16px 18px;max-height:70vh;overflow:auto}
.bid-modal .mf{padding:12px 18px;border-top:1px solid var(--bid-line);display:flex;gap:8px;justify-content:flex-end;background:rgba(255,255,255,.04);border-radius:0 0 26px 26px}
.bid-form{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.bid-form .full{grid-column:1/3}
.bid-form label{display:block;font-size:12px;color:var(--bid-gray);margin-bottom:4px;font-weight:600}
.bid-form input,.bid-form select,.bid-form textarea{width:100%;border:1px solid var(--bid-line);border-radius:12px;padding:7px 9px;font-size:13px;outline:none;box-sizing:border-box;font-family:inherit;background:rgba(255,255,255,.06);color:var(--bid-text);transition:border-color .25s ease,box-shadow .3s var(--bid-ease)}
.bid-form input:focus,.bid-form select:focus,.bid-form textarea:focus{border-color:var(--bid-blue);box-shadow:0 0 0 4px rgba(10,132,255,.14)}
.bid-form textarea{resize:vertical;min-height:64px}
.bid-form option{background:#1c1e2a;color:var(--bid-text)}
.bid-tabs{display:flex;gap:4px;border-bottom:1px solid var(--bid-line);margin-bottom:14px}
.bid-tabs button{border:none;background:none;padding:9px 14px;cursor:pointer;font-size:13px;color:var(--bid-gray);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:12px 12px 0 0;transition:background .3s var(--bid-ease),color .2s ease}
.bid-tabs button:hover{background:rgba(255,255,255,.06);color:var(--bid-text)}
.bid-tabs button.on{color:var(--bid-blue);border-bottom-color:var(--bid-blue)}
.bid-tl{list-style:none;margin:0;padding:0 0 0 16px;border-left:2px solid var(--bid-blue-l);position:relative}
.bid-tl li{position:relative;padding:0 0 16px 18px}
.bid-tl li:before{content:"";position:absolute;left:-23px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--bid-blue);border:2px solid #1c1e2a;box-shadow:0 0 0 1px var(--bid-blue-l)}
.bid-tl .th{font-weight:700;color:#f5f5f7}
.bid-tl .tm{font-size:12px;color:var(--bid-gray)}
.bid-tl .td{color:var(--bid-text);margin-top:2px}
/* 标书编辑器 */
.bid-editor{border:1px solid var(--bid-line);border-radius:16px;min-height:340px;padding:14px;outline:none;font-size:13px;line-height:1.7;background:rgba(255,255,255,.05);color:var(--bid-text);transition:border-color .25s ease}
.bid-editor:focus{border-color:var(--bid-blue);box-shadow:0 0 0 4px rgba(10,132,255,.12)}
.bid-edbar{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap}
.bid-edbar button{border:1px solid var(--bid-line);background:rgba(255,255,255,.06);color:var(--bid-text);border-radius:10px;padding:4px 10px;cursor:pointer;font-size:12px;transition:background .25s ease}
.bid-edbar button:hover{background:rgba(255,255,255,.12)}
/* 图表 */
.bid-pie{display:flex;align-items:center;gap:18px}
.bid-pie svg{flex:none}
.bid-legend{list-style:none;margin:0;padding:0;font-size:12px}
.bid-legend li{display:flex;align-items:center;gap:7px;padding:3px 0;color:var(--bid-gray)}
.bid-legend .sw{width:11px;height:11px;border-radius:3px}
.det-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.det-grid .full{grid-column:1/3}
.det-item{background:rgba(255,255,255,.06);border:1px solid var(--bid-line);border-radius:14px;padding:11px 13px}
.det-item .k{font-size:12px;color:var(--bid-gray)}
.det-item .v{font-size:15px;font-weight:700;color:#f5f5f7;margin-top:3px}
.bid-empty{text-align:center;color:var(--bid-gray);padding:30px 0}
.bid-pipe{display:flex;gap:6px;flex-wrap:wrap}
.bid-pipe .pc{background:rgba(255,255,255,.06);border:1px solid var(--bid-line);border-radius:12px;padding:6px 10px;font-size:12px;color:var(--bid-text)}
.bid-pipe .pc b{color:var(--bid-blue-d)}
.bid-warn{background:rgba(255,159,10,.12);border:1px solid rgba(255,159,10,.3);color:#ffc078;padding:9px 12px;border-radius:14px;font-size:12px;margin-bottom:12px}
@media(max-width:1100px){.bid-dash{grid-template-columns:repeat(2,1fr)}.bid-charts{grid-template-columns:1fr}.bid-form,.det-grid{grid-template-columns:1fr}.bid-form .full{grid-column:1}}
