/**
 * common.css — 两端共享样式
 * 由 extract_common_css.js 自动提取
 */

* { margin: 0; padding: 0; box-sizing: border-box; }
from { opacity:0 }
to { opacity:1 }
.btn-primary { background: linear-gradient(135deg,#667eea,#764ba2); color: white; }
.btn-success { background: #28a745; color: white; }
.btn-danger { background: #dc3545; color: white; }
.btn-warning { background: #ffc107; color: #333; }
.btn-sm { padding: 4px 10px; font-size: 11px; }
.pager button { padding: 5px 12px; border: 1px solid #ddd; background: white; border-radius: 6px; font-size: 12px; cursor: pointer; }
.pager button:hover:not(:disabled) { background: #667eea; color: white; border-color: #667eea; }
.pager button:disabled { opacity: 0.4; cursor: not-allowed; }
.pager .page-info { font-size: 12px; color: #888; }
.pager .pager-btn { padding: 4px 10px; border: 1px solid #ddd; background: white; border-radius: 6px; font-size: 12px; cursor: pointer; transition: all 0.15s; }
.pager .pager-btn:hover:not(:disabled) { background: #667eea; color: white; border-color: #667eea; }
.pager .pager-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.pager .pager-btn.active { background: #667eea; color: white; border-color: #667eea; font-weight: 600; }
.badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 10px; font-weight: 500; }
.badge-pending { background:#fff3cd;color:#d97706; }
.badge-approved { background:#d1fae5;color:#059669; }
.badge-rejected { background:#fee2e2;color:#dc2626; }
.badge-active { background:#d1fae5;color:#059669; }
.badge-late { background:#fee2e2;color:#dc2626; }
.badge-early { background:#fff3cd;color:#d97706; }
.pm-subtab:hover { color:#667eea; background:#f0f4ff; }
.pm-subtab.active { color:#667eea; border-bottom-color:#667eea; font-weight:600; }
.pm-panel { min-height:50vh; }
.emp-picker-dropdown { position:absolute; top:100%; left:0; right:0; background:white; border:1.5px solid #667eea;
            border-radius:8px; box-shadow:0 6px 20px rgba(0,0,0,.15); z-index:9999;
            max-height:280px; overflow-y:auto; display:none; margin-top:2px; }
.emp-picker-dropdown.show { display:block; }
.emp-picker-search { padding:8px 10px; border:none; border-bottom:1px solid #eee; width:100%;font-size:13px;outline:none;box-sizing:border-box; }
.emp-picker-item { padding:8px 14px; cursor:pointer;font-size:13px;display:flex;align-items:center;border-bottom:1px solid #f8f8f8; }
.emp-picker-item:hover { background:#f5f7ff; }
.emp-picker-item:last-child { border-bottom:none; }
.emp-picker-empty { padding:16px;text-align:center;color:#aaa;font-size:12px; }
.table-wrap.full-height { max-height: none; }
.table-actions { display: flex; gap: 4px; }
.table-actions .btn { padding: 3px 8px; font-size: 10px; }
.stat-label { color: #666; }
.stat-val { font-weight: 500; }
.stat-val.red { color: #dc3545; }
.stat-val.green { color: #28a745; }
.approval-card .ac-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.approval-card .ac-name { font-size: 14px; font-weight: 500; }
.approval-card .ac-detail { font-size: 12px; color: #666; line-height: 1.6; }
.approval-card .ac-actions { display: flex; gap: 8px; margin-top: 10px; justify-content: flex-end; }
.modal-overlay.show { display: flex; animation: fadeIn 0.2s; }
from { transform:translateY(30px);opacity:0 }
to { transform:translateY(0);opacity:1 }
.modal-btn.cancel { background: #f1f3f4; color: #555; }
.modal-btn.submit { background: linear-gradient(135deg,#667eea,#764ba2); color: white; }
.toast.show { opacity:1;transform:translateX(-50%)translateY(0); }
.empty-msg { text-align:center;color:#bbb;padding:24px;font-size:13px; }
.not-login-mask { display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,0.98);z-index:3000;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px; }
.not-login-mask.show { display:flex; }
.not-login-mask a { color:#667eea;text-decoration:none;font-size:15px; }
.member-tag { background: #e8edfb; color: #5a67d8; padding: 3px 8px; border-radius: 12px; font-size: 11px; display: flex; align-items: center; gap: 4px; }
.member-tag .remove-btn { cursor: pointer; color: #999; font-weight: bold; }
