:root{--primary: #4a6fa5;--primary-hover: #3a5a8a;--danger: #e74c3c;--danger-hover: #c0392b;--success: #27ae60;--success-hover: #219a52;--warning: #e67e22;--warning-hover: #d35400;--bg: #f5f7fa;--card-bg: #fff;--border: #dce1e8;--text: #2c3e50;--text-light: #7f8c9a;--sidebar-bg: #2c3e50;--sidebar-text: #ecf0f1;--sidebar-active: #4a6fa5;--stripe: #f8f9fb;--hover-row: #eef2f7;--radius: 6px;--shadow: 0 2px 8px rgba(0,0,0,.08)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 18px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;color:var(--text);font-size:14px;cursor:pointer;transition:all .15s;white-space:nowrap}.btn:hover{background:var(--stripe)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover{background:var(--success-hover);border-color:var(--success-hover)}.btn-warning{background:var(--warning);color:#fff;border-color:var(--warning)}.btn-warning:hover{background:var(--warning-hover);border-color:var(--warning-hover)}.btn-sm{padding:4px 12px;font-size:13px}.input,.select{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text);background:#fff;outline:none;transition:border-color .15s}.input:focus,.select:focus{border-color:var(--primary)}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text-light);font-size:13px}tbody tr:nth-child(2n){background:var(--stripe)}tbody tr:hover{background:var(--hover-row)}.container{padding:24px 28px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-header h2{margin:0;font-size:20px}.add-bar{display:flex;gap:10px;margin-bottom:20px}.add-bar .input{flex:1}.msg-success{color:var(--success);font-size:14px;margin-top:8px}.msg-error{color:var(--danger);font-size:14px;margin-top:8px}
