/* ============================================================
 *  中钰招标 V2 前端标准化 - 核心样式 (common.css)
 *  阶段：P0 (边框/阴影/圆角/字体/基础组件)
 *  原则：零侵入、不碰HTML结构、删CSS即回滚
 * ============================================================ */

:root {
    --zy-primary:       var(--blue);
    --zy-primary-dark:  var(--blue-dark);
    --zy-primary-light: var(--bg-blue);
    --zy-primary-bg:    var(--bg-blue);
    --zy-success:       var(--success);
    --zy-danger:        var(--danger);
    --zy-warning:       var(--warning);
    --zy-info:          var(--info);
    --zy-accent:        var(--gold);
    --zy-text:          var(--txt);
    --zy-secondary:     var(--txt2);
    --zy-bg:            var(--bg);
    --zy-panel:         #ffffff;
    --zy-border:        var(--line);
    --zy-radius:        var(--radius);
    --zy-radius-sm:     4px;
    --zy-shadow-sm: var(--shadow);
    --zy-shadow: var(--shadow);
    --zy-shadow-lg: var(--shadow-lg);
}

* { box-sizing: border-box; }

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
    font-size: 14px; line-height: 1.6; color: var(--zy-text); background: var(--zy-bg); margin: 0;
}

.card, .panel, .content-box, .section-panel, [class*="-panel"]:not(.sidebar-panel):not(.topbar-panel) {
    background: var(--zy-panel) !important;
    border: 1px solid var(--zy-border) !important;
    border-radius: var(--zy-radius) !important;
    box-shadow: var(--zy-shadow) !important;
}

table {
    width: 100%; border-collapse: separate; border-spacing: 0;
    background: var(--zy-panel) !important;
    border: 1px solid var(--zy-border) !important;
    border-radius: var(--zy-radius) !important;
    overflow: hidden; box-shadow: var(--zy-shadow) !important;
}
thead th {
    background: var(--zy-primary-bg) !important; color: var(--zy-primary) !important;
    font-weight: 600; text-align: left; padding: 12px 16px; border-bottom: 2px solid var(--zy-border);
}
tbody td { padding: 10px 16px; border-bottom: 1px solid var(--zy-border); }
tbody tr:hover td { background: var(--zy-primary-light); }
tbody tr:nth-child(even) td { background: #fafbfc; }

.btn, [class*="btn-"] {
    display: inline-flex; align-items: center; gap: 6px; padding: 8px 20px;
    font-size: 14px; font-weight: 500; border-radius: var(--zy-radius-sm);
    border: 1px solid transparent; cursor: pointer; transition: all 0.2s ease;
}
.btn-primary { background: var(--zy-primary) !important; color: #fff !important; }
.btn-primary:hover { background: var(--zy-primary-dark) !important; transform: translateY(-1px); }
.btn-danger { background: var(--zy-danger) !important; color: #fff !important; }

input[type="text"], input[type="password"], select, textarea {
    border: 1px solid var(--zy-border) !important;
    border-radius: var(--zy-radius-sm) !important; padding: 8px 12px !important;
}
input:focus, select:focus, textarea:focus {
    outline: none !important;
    border-color: var(--zy-primary) !important;
    box-shadow: 0 0 0 3px rgba(26,95,180,0.1) !important;
}

.badge, .status-tag { display: inline-block; padding: 2px 10px; border-radius: 12px; font-size: 12px; }
.status-success, .badge-success { background: #def7ec; color: var(--zy-success); }
.status-warning, .badge-warning { background: #fef3c7; color: var(--zy-warning); }
.status-danger, .badge-danger { background: #fde8e8; color: var(--zy-danger); }

/* ===== P1-1：按钮体系 ===== */
.btn-sm { padding: 4px 12px; font-size: 12px; }
.btn-lg { padding: 12px 28px; font-size: 16px; }
.btn-outline { background: transparent !important; color: var(--zy-primary) !important; border-color: var(--zy-primary) !important; }
.btn-outline:hover { background: var(--zy-primary-light) !important; }
.btn:disabled, .btn[disabled] { opacity: 0.5; cursor: not-allowed; pointer-events: none; }

/* ===== P1-2：Badge 状态标签 ===== */
.badge, .status-tag, [class*="status-"] {
    display: inline-block; padding: 2px 10px; border-radius: 12px;
    font-size: 12px; font-weight: 500; line-height: 1.4;
}
.status-success, .badge-success { background: #def7ec; color: var(--zy-success); }
.status-warning, .badge-warning { background: #fef3c7; color: var(--zy-warning); }
.status-danger, .badge-danger     { background: #fde8e8; color: var(--zy-danger); }
.status-info, .badge-info         { background: #e8f4fd; color: var(--zy-info); }
.status-secondary                 { background: #f7fafc; color: var(--zy-secondary); }

/* ===== P1-2：输入框聚焦高亮 ===== */
input:focus, select:focus, textarea:focus {
    outline: none !important;
    border-color: var(--zy-primary) !important;
    box-shadow: 0 0 0 3px rgba(26,95,180,0.1) !important;
}

/* ===== P1-3：弹窗 ===== */
.modal, .modal-overlay, [class*="modal"] {
    background: rgba(0,0,0,0.4) !important;
    backdrop-filter: blur(2px);
}
.modal-content, .modal-body, .dialog, [class*="dialog"] {
    background: var(--zy-panel) !important;
    border-radius: var(--zy-radius-lg) !important;
    box-shadow: var(--zy-shadow-lg) !important;
}

/* ===== P1-3：空状态引导 ===== */
.empty-state, [class*="empty"] {
    text-align: center; padding: 40px 20px; color: var(--zy-secondary);
}
.empty-state::before {
    content: "📋"; display: block; font-size: 48px; margin-bottom: 12px;
}

/* ===== 登录页输入框修正：文字居中，图标不遮挡 ===== */
.login-card .input-wrap input {
    text-align: center !important;
    padding-left: 44px !important;
}
